git查看已合并分支的fork点
一个问题
有些需求有好几期,做后面几期的可能完全不了解前几期做了什么,拿到分支号后,就需要找到最初的commit点。由于这个分支已经merge到了master上,所以找最近的ancestor就不对了。
1 |
git merge-base branch1 branch2 //只能找到最近的祖先 |
那么如何找到这个分支最初的fork点呢,下面给出两种方案,亲测有效。
解决方案
git 别名
1 |
git config --global alias.oldest-ancestor '!zsh -c '\''diff -u <(git rev-list --first-parent "${1:-master}") <(git rev-list --first-parent "${2:-HEAD}") | sed -ne "s/^ //p" | head -1'\'' -' |
上述三个命令就可以找到最初的commit点,以及这个分支做了什么。参见
stackoverflow
上的回答:
Finding a branch point with Git? - Stack Overflow
git分支图
如果你使用
zsh
, 内置的有两个相关的命令
glgg
,
glgga
.
glgg
: 显示当前分支的分支图
1 |
➜ ~ alias glgg |
glgga
: 显示所有分支的分支图
1 |
➜ ~ alias glgga |
从分支图中可以快速的看出当前分支是在哪里fork出来的