繁体   English   中英

Git状态有点令人困惑

[英]Git status a bit confusing

Git在我的一个分支机构上报告以下状态:

# On branch awesome
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
#       new file:   NEW.txt
#
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#
#       modified:   NEW.txt
#

这是因为我创建了NEW.txt然后命令:

git add NEW.txt

然后编辑了该文件。 这是否意味着执行git commit会提交我对文件所做的最新更改,还是应该格外小心?

Git具有工作目录暂存区域(索引)的概念。 如果添加新文件,则会将其添加到索引中。 如果您以后编辑该文件,则只会在您的工作副本中进行更改。 您需要以与已存在的文件相同的方式将其添加到索引中。

因此,简而言之,只有索引中的内容才会被提交。 commit -a可以在这里工作,或者只是像往常一样编辑它时再次添加文件。

Git版本内容而不是文件。 因此, git add时的内容将在下次提交时提交。

在您描述的情况下,如果您执行git commit您将提交在执行git add之前所做的更改(可能只创建一个空文件),而不是之后的更改。 您可以使用git diff来查看差异:

git diff

显示工作副本索引之间的差异

git diff --cached

显示索引和HEAD之间的差异。 git diff --cached显示的git diff --cached将在git commitgit commit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM