有没有一种快速的方法来从点或分支来源“git diff”?

我看过各种关于使用git diff和git修订版(HEAD,ORIG_HEAD,FETCH_HEAD等)的答案,但我仍然没有找到一种简单的方法来列出自本地分支开始以来所做的更改,或者自从上次变基。

我的意思是说,无需查找并粘贴提交SHA或计算我想回顾的提交数量。

git diff origin/master是关闭的,但是它指的是远程,因为我检出了新的分支,所以可能会发生分歧。

我希望像git diff BASE_HEAD可用。

......除非已经有办法做到这一点。 有没有人有答案?


使用git diff @{u}...HEAD ,有三个点。

有了两个点,或省略了HEAD ,它将显示两侧变化的差异。

有了三个点,它只会显示你身边变化的差异。

编辑:对于需求略有不同的人,你可能会对git merge-base感兴趣(注意它有比其他答案用途更多的选项)。


你可以使用git merge-base找到分支点。 考虑master主线和dev你感兴趣的历史的分支。要找到devmaster分支的点,运行:

git merge-base --fork-point master dev

我们现在可以在这个基础上dev差异:

git diff $(git merge-base --fork-point master dev)..dev

如果dev是当前分支,则简化为:

git diff $(git merge-base --fork-point master)

有关更多信息,请参阅git-merge-base文档。


您可以使用以下命令来区别分支起点的当前分支:

git diff (start point)...

其中(起点)是分支名称,提交标识或标签。

例如,如果您正在develop分支的功能分支,则可以使用:

git diff develop...

对于分支点以来当前分支上的所有更改。

这在评论中已经提到,但我认为它值得回答。 我不知道自上次发布以来该做什么。

链接地址: http://www.djcxy.com/p/43573.html

上一篇: Is there a quick way to "git diff" from the point or branch origin?

下一篇: You have not concluded your merge (MERGE