使用git时,有没有办法显示对分支所做的提交,而忽略合并带来的所有提交?
我正在尝试查看在分支上所做的代码更改,而忽略了我们在合并的其他分支上所做的更改。我知道几乎不可能以这种方式显示差异,但是我希望能够找出我需要审查的提交。
Answers:
--no-merges
在许多情况下,父母双方在git中的权重相等。如果您在合并其他更改时始终保持一致,那么您可能会发现这可以满足您的需求。
git log --no-merges --first-parent
否则,您可能可以排除其他命名分支中的提交。
git log --no-merges ^other-branch-1 ^other-branch-2 ^other-branch-3
如果要查看要合并回主体分支的更改,那么最简单的方法是在本地克隆上执行合并,然后在发布合并之前先查看与第一个父对象的差异。
您可以使用git cherry
它,它会发现尚未合并到上游的提交,或者找到一个分支上但其他分支上没有的提交。因此,给了两个分支,分别命名为“ your-branch”和“ master”:
git cherry -v your-branch master
将向您显示提交列表及其补丁程序ID:
+ c3e441bf4759d4aa698b4a413f1f03368206e82f Updated Readme
- 2a9b2f5ab1fdb9ee0a630e62ca7aebbebd77f9a7 Fixed formatting
+ e037c1d90b812af27dce6ed11d2db9454a6a74c2 Corrected spelling mistake
您会注意到,以“-”为前缀的提交是在两个分支中都出现的提交,而以“ +”为前缀的提交仅在您的分支上可用。
或者,您可以使用:
git log --pretty=format:"%h %s" your-branch..master --no-merges
这将向您显示在“您的分支”上完成但尚未出现在“主”上的提交列表