作为Git的新手,有人可以用相对简单的术语解释git diff
实际上做了什么,而不进行分支/合并等吗?
根据我的经验,我知道运行它的结果:
我的工作目录中与我的仓库中的文件不同的任何文件都将由git diff
返回,因为它们尚未放入暂存索引中。
如果我的所有更改都已放入暂存索引中,git diff
将不返回任何内容。要查看我的更改,我必须使用git diff --staged
。
有一个简单的方法来解决这个问题吗?我不能完全了解关于分段索引的警告。
答案 0 :(得分:3)
你是对的,git diff
显示未分期的更改。
从技术上讲,它是工作树和索引树之间的区别(当没有任何阶段时,它与HEAD的树相同,即最后一次提交)。
git-speak中的'tree'是目录中文件的快照。
答案 1 :(得分:0)
我的建议是阅读本书(免费提供):http://git-scm.com/book
答案 2 :(得分:0)
您可以阅读manual。 “说明”部分解释了git diff
,git diff --cached
,git diff commit1 commit2
等所有变体......
我建议使用git status
清楚地了解文件的状态。
然后,您可以使用git diff HEAD -- <path/to/file>
查看当前状态的文件与上次提交的版本之间的差异。