如何获得分支之间的git commit差异

时间:2013-11-18 18:00:49

标签: git

我遗漏了一些在我的dev分支中的提交但不在master中。有些提交已合并,有些则未合并。

我可以通过以下方式获得分支之间的差异:

git diff master..develope
git diff --name-status master..branch
git diff --stat --color master..branchName

但是,这给了我文件的区别。 我想知道无论如何我可以得到实际的git提交而不是文件差异?

3 个答案:

答案 0 :(得分:2)

要查看开发中但不在master中的提交:

git log master..develope

此语法的字面意思是“打印出开发日志减去主日志”。

请注意,这仅显示来自developpe的提交,这些提交不在master中。要查看相反的情况,请在master中提交未开发的内容,只需反转args:

git log develope..master

答案 1 :(得分:2)

这是git cherry的用途之一(注意:不是git cherry-pick)。你会这样使用它:

git checkout master
git cherry dev

这将识别dev中的master中尚未引入等效更改的提交。请注意,这不仅仅是查看提交哈希,因为一个挑选的提交将引入相同的更改,但将具有不同的父和提交日期,并且可能具有不同的提交者,因此哈希将是不同的。 git cherry试图找出可以挑选但尚未......的“樱桃”......

答案 2 :(得分:1)

我认为git log master..develop就是你想要的。

这也是一个很酷的命令 - 它会直观地向你展示它们的不同之处:

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master develop