【发布时间】:2018-08-24 21:28:37
【问题描述】:
让我们使用最新可用的 git 2.16.2 和 tig 2.3.3。
cd /tmp && mkdir fit && cd fit
git init
touch m1 && git add m1 && git commit -m "master 1"
touch m2 && git add m2 && git commit -m "master 2"
git checkout -b develop
touch d1 && git add d1 && git commit -m "develop 1"
git checkout master
touch m3 && git add m3 && git commit -m "master 3"
git checkout develop
git merge master --no-edit
touch d2 && git add d2 && git commit -m "develop 2"
touch d3 && git add d3 && git commit -m "develop 3"
git checkout master
git merge develop --no-edit
touch m4 && git add m4 && git commit -m "master 4"
git reflog expire --expire=now --all && git gc --prune=now --aggressive
在develop 分支中检索最后一次提交非常容易:
git --no-pager show -s --format=%B $(git rev-parse develop)
开发 3
但我无法在 develop 分支中检索 第一次提交。所以我找不到分支分支的提交。
git merge-base --fork-point develop
git rev-list develop..master
git rev-list develop master
git rev-list master develop
git rev-list ^develop master
结果没有用。
我找到了问题How to get commit where merged branch forked from的解决方案
git oldest-ancestor master develop
git oldest-ancestor develop master
结果也没有用。
但是tig 和git log --graph 仍然能够看到develop 1 是develop 分支的第一个提交,并且这个分支是从master 2 中的master 提交分叉出来的。
是否可以使用当前的 git 控制台工具检索 master 2?
【问题讨论】:
-
"结果没有用。" . . .请具体说明:你打算用什么?
标签: git git-branch git-log tig