45

我已经对本地分支进行了多次提交,但我不确定将我目前拥有的内容与分支的起始状态进行比较的最佳方法是什么。我知道git diff HEAD HEAD~6如果我的分支有 6 次提交,我可以做一些事情,但我希望得到与提交次数无关的东西。

编辑:我没有提到这一点:我希望我不必挖掘日志来获取我分支的提交的哈希值。例如,如果我有 80 次提交,这将不是一个有趣的任务。

另外,假设我分支的原始分支已经发生了一些变化。

4

3 回答 3

64

您需要使用以下描述的三点语法git help diff

git diff otherbranch...

这与以下内容相同:

git diff otherbranch...HEAD

这与以下内容相同:

git diff $(git merge-base otherbranch HEAD) HEAD

merge-base命令打印“最佳”(最近的)共同祖先,因此上述命令显示了与toHEAD共同的最近提交的差异。otherbranchHEAD

请注意,您可以使用@{u}代替otherbranch来查看自从您从上游分支分歧后所做的更改。有关git help revisions语法的详细信息,请参阅。

于 2011-06-17T21:38:52.900 回答
0

首先,您需要找到您从. 一旦你有了它,你可以简单地做一个git diff <branch-point>..HEAD(正如yasouser指出的那样)。

于 2011-06-17T20:05:56.280 回答
-1

git diff <SHA-1 of the commit from which you branched>..HEAD

您可以通过执行git log.

于 2011-06-17T20:01:46.463 回答