我遗漏了一些在我的dev分支中的提交但不在master中。有些提交已合并,有些则未合并。
我可以通过以下方式获得分支之间的差异:
git diff master..develope
git diff --name-status master..branch
git diff --stat --color master..branchName
但是,这给了我文件的区别。 我想知道无论如何我可以得到实际的git提交而不是文件差异?
答案 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