我对 git 很陌生,任何人都可以帮助我。
git diff 可以进行两次修订并显示它们之间的差异。
HEAD 是指向当前分支的最后一次提交的引用。
git diff HEAD将向您显示上次提交和尚未提交的更改之间的更改(与git diff(没有修订)相反,后者显示尚未暂存的更改(使用git add,以便之后可以提交))。
HEAD~1是一种特殊语法,允许您选择HEAD. 提交通常只有一个父级(前一次提交),除非它们合并两个分支,在这种情况下,它们有一个父级用于前一次提交,另一个用于合并的分支。
请注意,有一个简写,HEAD因为它被使用得如此频繁。您可以用@相同的行为替换它。git diff @与git diff HEAD等相同。
对于HEAD语法
HEAD是分支中的最新提交HEAD~N是第 n 个较旧的提交HEADgit diff HEAD将向您显示当前内容和最近提交之间的差异,
如果您有暂存内容(git add已编辑,但尚未已commit编辑)并且您也对未暂存的差异感兴趣git diff(这将仅向您显示分阶段提交状态及其之上的更改)
git diff HEAD~1..HEAD将向您显示当前分支上最近的提交和上一个提交之间的差异,忽略任何当前的差异,
这对于比较先前提交的范围很有用(以及类似的语法git reset --soft HEAD~N,这将使分支HEAD丢弃~N中间提交,但保留它们就像您使用过一样上演git add)
git diff HEAD..HEAD~1向您展示相反的情况HEAD~1..HEAD
通常是一个错误,并且只是造成混乱的根源