:
A
T / \
i B C
m : :
e D E
\ /
| F
V :
git merge-base B E
2つの共通の祖先A
がコミットする場所を見つけることができます。F
2つのブランチが再びマージされるコミットを見つける方法はありますか?
:
A
T / \
i B C
m : :
e D E
\ /
| F
V :
git merge-base B E
2つの共通の祖先A
がコミットする場所を見つけることができます。F
2つのブランチが再びマージされるコミットを見つける方法はありますか?
おっとっと。それを十分に注意深く読んでいませんでした。
コミット内の唯一の情報は、その親 (または親) の ID です。親コミットから子に到達することはできません (これは、DAG であるリポジトリの指示された部分です)。
これをもっと見ると、--ancestry-path
git log のオプションでこれができるようです。たとえば、次のようになります。
* 85d26ab When compiling vim, also compile & install gvim
* 3146e5d Merge remote-tracking branch 'origin/devel' into deve
|\
| * 28d08e5 rebasing-merge: specify all commits explicitly
* | 006d11d Help 'file' find its magic file
|/
* e68531d (tag: Git-1.7.6-preview20110720) Update submodules
を使用して、これら 2 つのコミットのすべての子を取得できます。
git log --oneline --ancestry-path B..E
これを逆にして最初のものを選ぶと、それが F です。
git rev-list --reverse --ancestry-path 28d08e5..006d11d | head -1
私の場合は 3146e5d を返します。