[英]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 commit
上git commit
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.