当前位置: 首页 > 工具软件 > gitstatus > 使用案例 >

git status怎么操作_git status命令

林德华
2023-12-01

Git语言 的 git status命令

git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status不显示已经commit到项目历史中去的信息。看项目历史的信息要使用git log.

简介

git status […] [--] […]

描述

显示索引文件和当前HEAD提交之间的差异,在工作树和索引文件之间有差异的路径以及工作树中没有被Git跟踪的路径。 第一个是通过运行git commit来提交的; 第二个和第三个是你可以通过在运行git commit之前运行git add来提交的。

git status相对来说是一个简单的命令,它简单的展示状态信息。输出的内容分为3个分类/组。

# On branch master

# Changes to be committed: (已经在stage区, 等待添加到HEAD中的文件)

# (use "git reset HEAD ..." to unstage)

#

#modified: hello.py

#

# Changes not staged for commit: (有修改, 但是没有被添加到stage区的文件)

# (use "git add ..." to update what will be committed)

# (use "git checkout -- ..." to discard changes in working directory)

#

#modified: main.py

#

# Untracked files:(没有tracked过的文件, 即从没有add过的文件)

# (use "git add ..." to include in what will be committed)

#

#hello.pyc

忽略文件(untracked文件)

没有tracked的文件分为两类. 一是已经被放在工作目录下但是还没有执行 git add 的, 另一类是一些编译了的程序文件(如.pyc, .obj, .exe等)。当这些不想add的文件一多起来, git status的输出简直没法看, 一大堆的状态信息怎么看?

基于这个原因。 Git让我们能在一个特殊的文件.gitignore中把要忽略的文件放在其中, 每一个想忽略的文件应该独占一行, *这个符号可以作为通配符使用。例如在项目根目录下的.gitignore文件中加入下面内容能阻止.pyc和.tmp文件出现在git status中:

*.pyc

*.tmp

示例

以下是一些示例 -

在每次执行 git commit之前先使用git status检查文件状态是一个很好的习惯, 这样能防止你不小心提交了您不想提交的东西。 下面的例子展示 stage 前后的状态, 并最后提交一个快照.

# Edit hello.py

$ git status

# hello.py is listed under "Changes not staged for commit"

$ git add hello.py

$ git status

# hello.py is listed under "Changes to be committed"

$ git commit

$ git status

# nothing to commit (working directory clean)

第一个状态输出显示了这个文件没有被放到暂存区(staged)。git add将影响第二个git status的输出, 最后一个git status告诉我们没有什么能可以提交了,工作目录已经和最近的提交相匹配了。有些命令 (如, git merge) 要求工作目录是clean状态, 这样就不会不小心覆盖更新了。

git status命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件。下面来看看如下一个示例 -

$ git status

# On branch master

# Changes to be committed:

# (use "git reset HEAD ..." to unstage)

#

# modified: 2.txt

#

# Changes not staged for commit:

# (use "git add ..." to update what will be committed)

# (use "git checkout -- ..." to discard changes in working directory)

#

# modified: 1.txt

#

# Untracked files:

# (use "git add ..." to include in what will be committed)

#

# 1.log

上面输出结果中”Changes to be committed“中所列的内容是在索引中的内容,提交之后进入Git工作目录。

上面输出结果中“Changed but not updated”中所列的内容是在工作目录中的内容,git add之后将添加进入索引。

上面输出结果中“Untracked files”中所列的内容是尚未被Git跟踪的内容,git add之后进入添加进入索引。

通过git status -uno可以只列出所有已经被git管理的且被修改但没提交的文件。

 类似资料: