$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
Run Code Online (Sandbox Code Playgroud)
输出有两列 - 左侧列表示暂存区的状态,右侧列表示工作树的状态。例如,在该输出中,工作目录中的 README 文件已修改但尚未暂存,而 lib/simplegit.rb 文件已修改并暂存。Rakefile 被修改、暂存,然后再次修改,因此对它进行了暂存和未暂存的更改。
以上来自 Pro Git,作者是 Scott Chacon 和 Ben Straub,由 Apress 出版。
我对暂存区和工作树之间的区别感到困惑。我会解释我认为是真实的。
“自述文件已在工作目录中修改但尚未暂存”:我们没有跟踪此文件。尽管如此,Git 知道它已被修改。从最后一个快照。
“lib/simplegit.rb 文件被修改并暂存”:修改后我们已经暂存了文件。剩下的就是提交。
“Rakefile 被修改,暂存,然后再次修改,因此它的更改既有暂存的,也有未暂存的。”:就像之前的文件一样,我们暂存了一个修改过的文件。下一步是什么?
为什么我们需要这两者?在什么情况下它们在命令行上给出的输出会有所不同?
您能否解释一下两者在添加文件、暂存和修改等不同场景下的差异。那么什么是分阶段和非分阶段的变化呢?