如何在合并分支分叉的地方获得提交

Wil*_*eer 8 git branch

o---1---o---o---o---o     master
     \         /
      o---o---2           feature
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用reflog的情况下获得提交1?使用git 2.4.2

我试过了:

git merge-base master feature
git merge-base feature master
returns: commit 2 
git merge-base --fork-point master feature
git merge-base --fork-point feature master
returns nothing ( exit code 1 )
Run Code Online (Sandbox Code Playgroud)

不重复:

Wil*_*eer 7

从这个问题中找到了我的答案:(反向移植实际上也是我的用例!) /sf/answers/1170322401/

[alias]
    oldest-ancestor = !bash -c 'diff -u <(git rev-list --first-parent "${1:-master}") <(git rev-list --first-parent "${2:-HEAD}") | sed -ne \"s/^ //p\" | head -1' -
Run Code Online (Sandbox Code Playgroud)

我有些困惑,这不是git默认的一部分.你至少会期望这是--fork-point选项的行为merge-base.如果有人知道更好/默认的替代品.请将其放在评论中或作为单独的答案!