o---1---o---o---o---o master
\ /
o---o---2 feature
是否可以在不使用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 )
不重复:
答案 0 :(得分:6)
从这个问题中找到我的答案: (backporting实际上也是我的用法!) https://stackoverflow.com/a/16718891/867294
var tt = $(window).width();
$(".item-slider").css("width", tt+"px");
我有些困惑,这不是git默认的一部分。您至少会期望这是[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' -
的{{1}}选项的行为。如果有人知道更好/默认的替代品。请将其放在评论中或作为单独的答案!
答案 1 :(得分:2)
正如您所注意到的,git merge-base
对您没有帮助。原因是feature
是master
历史记录的一部分,可以快速转发到master
。
如果这是您的特定设置,您已将feature
合并到master
,并且feature
分支仍然指向合并前的提交,那么您可以获得所有master
中包含feature
但未包含的提交,并采用最后一个提交;你正在寻找的合并基础是它的父母。您可以通过指定范围feature..master
:
git show $(git rev-list feature..master | tail -1)~1
这将在图表中显示合并基础提交“1”。
答案 2 :(得分:0)
我认为以下内容可满足您的需求:
git merge-base --fork-point master