我已经对一个本地分支进行了多次提交,但是我不确定将我目前拥有的内容与我的分支的起始状态区分开来的最佳方法。我知道如果我的分支有6次提交,我可以做git diff HEAD HEAD~6
之类的事情,但我希望能找到与提交次数无关的内容。
编辑: 我没有提到这个:我希望我不必挖掘日志来获取我分支的提交的哈希值。例如,如果我有80次提交,这将不是一项有趣的任务。
另外,假设我分支的原始分支已经有几处变化。
答案 0 :(得分:64)
您需要使用git help diff
中描述的三点语法:
git diff otherbranch...
这与:
相同git diff otherbranch...HEAD
与:
相同git diff $(git merge-base otherbranch HEAD) HEAD
merge-base
命令打印“最佳”(最近的)共同祖先,因此上述命令显示与HEAD
与otherbranch
共有的最新提交的差异HEAD
。
请注意,您可以使用@{u}
代替otherbranch
来查看自上游分支分离后所做的更改。有关语法的详细信息,请参阅git help revisions
。
答案 1 :(得分:0)
git diff <SHA-1 of the commit from which you branched>..HEAD
您可以通过git log
获取分支点的SHA-1。
答案 2 :(得分:0)
首先,您需要find the commit you branched from。一旦你有了,你可以简单地做一个git diff <branch-point>..HEAD
(正如yasouser指出的那样)。