我通常在master分支的分支上工作。所以当我开发东西的时候,我偶尔会执行git merge master
。有时我想知道上次在那个分支上做git merge master
是什么时候。我知道我可以做git log
并寻找"合并分支'master'",并查看提交日期……但如果有魔法,我想知道!
git show :/"Merge branch 'master'"
我个人喜欢检查版本树的差异:
git log --graph --left-right --cherry-pick --oneline branch1...branch2
同时,在"魔法"部门有
git show-branch
git show-branch branch1 branch2
git show-branch --all # which does all of the above and more
最后,
git merge-base branch1 branch2
命名将从
合并的基修订。指出:
- 根据您的项目替换
branch1
和branch2
- 你可以别名这些命令,如果你喜欢他们:http://progit.org/book/ch2-7.html#git_aliases
-
--cherry-pick
选项携带一种罕见的magic
:
--cherry-pick
当提交集受到对称差异限制时,省略任何引入与"另一边"相同更改的提交。
例如,如果你有两个分支,A和B,通常的方法是在它们的一侧列出所有提交,使用——left-right,就像上面那个选项描述中的例子一样。然而,它显示了从其他分支中挑选出来的提交(例如,"3rd on b"可能是从分支A中挑选出来的)。使用此选项,这样的提交对将从输出中排除。
您可以使用git merge-base
来获取共同祖先,并显示结果。
像这样:
git merge-base HEAD master | git show --pretty