当我修改单个文件然后运行git status
时,我得到:
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: app/models/category.rb
#
no changes added to commit (use "git add" and/or "git commit -a")
为什么有(use "git add <file>..." to update what will be committed)
行?
我的仓库中没有要添加的文件。
答案 0 :(得分:1)
您还可以使用git add
来修改提交的文件。
答案 1 :(得分:1)
git-add
还用于将工作副本中的更改添加到索引中。索引用于在实际提交之前构建提交。
参见例如http://schacon.github.com/git/user-manual.html#how-to-make-a-commit
答案 2 :(得分:0)
正如其他人所说,这是因为git为这个过程增加了另一个阶段,比如颠覆。 git存储库的分支包含已提交的文件版本,git索引包含将要提交的更改,文件系统保存文件的实际当前状态。
即使已经跟踪了某个文件,当它被更改时,也不会明确地提交它,除非您将其标记为“是,请执行此操作”。有几种方法可以做到这一点:
git add someFile;git commit; #explicitly add and then commit marked files
git commit someFile -m " Change to someFile."; #explicitly commit a list of files
git commit -am " Latest set of changes to all tracked files"; #shotgun approach, commits all changes to all tracked files or added files
我建议使用
git commit someFile anotherFile aWholeOtherFile -m " Commit message."
明确地说,直到你真正掌握了git中的提交并且可以更加意识到如何处理意外提交你不想要的东西,然后转向更简单的git commit -am " Commit message."
方法