使用git时,有没有办法显示对分支进行的提交,而忽略通过合并引入的所有提交?显示直接提交到分支的提交,忽略Git中的合并
我试图检查在分支上做出的代码更改,而忽略了我们在其他合并分支上所做的代码更改。我知道这是该死的近乎不可能以这种方式显示差异,但我想能够找出我需要审查哪些提交。
使用git时,有没有办法显示对分支进行的提交,而忽略通过合并引入的所有提交?显示直接提交到分支的提交,忽略Git中的合并
我试图检查在分支上做出的代码更改,而忽略了我们在其他合并分支上所做的代码更改。我知道这是该死的近乎不可能以这种方式显示差异,但我想能够找出我需要审查哪些提交。
父母在git中的许多环境中都具有相同的权重。如果您在合并其他更改时始终保持一致,那么您可能会发现这会给你想要的东西。
git log --no-merges --first-parent
否则,您可能能够排除其他指定分支的提交。
git log --no-merges ^other-branch-1 ^other-branch-2 ^other-branch-3
如果你想查看您要合并到一个主要分支,然后以最简单的办法就是在本地克隆进行合并,然后就看DIFF与第一变化父母在发布合并之前。
一个非常hackish的方式:
git log --graph --oneline --no-merges thebranch|grep '^\*'
您可以使用git cherry
的是,它会找到你承诺的是尚未合并到上游,或者说是在一个分支的提交而不是其他。因此,考虑两个分支命名为“你的分支”和“大师”:
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
它会告诉你关于“你的分支”是尚不存在的“主人”的提交完成的列表
这第一个命令是优“正确的分支功能”(https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR) – 2011-12-15 22:02:54