Git 将分支的前n个提交合并到主节点
我有一个从最近提交到Git 将分支的前n个提交合并到主节点,git,merge,fast-forward,Git,Merge,Fast Forward,我有一个从最近提交到master的分支。分支上有两个提交。我想快速地将第一个提交合并到master上 我知道我可以摘樱桃,但如果我能帮忙的话,我真的不想把主枝分开 当前状态: Branch: +--->B--->C / Master: --->A 樱桃选择: Branch: +--->B--->C / Master: --->A--->B' 理想的选择: Branch:
master
的分支。分支上有两个提交。我想快速地将第一个提交合并到master上
我知道我可以摘樱桃,但如果我能帮忙的话,我真的不想把主枝分开
当前状态:
Branch: +--->B--->C
/
Master: --->A
樱桃选择:
Branch: +--->B--->C
/
Master: --->A--->B'
理想的选择:
Branch: +--->C
/
Master: --->A--->B
这可能吗
请注意,提交已全部推送到远程;但目前没有其他人可以访问此特定回购协议,因此推式f也可以
我似乎记得在签出分支时,可能有某种方法可以合并到master上。。。如果这是真的,我可以简单地签出commit B,然后以那种方式合并?正如Raymond Chen评论的那样,所描述的问题的解决方案是
git merge B
我将把这个问题留一段时间,以防有人对标题中的问题有更一般的答案,即n次提交而不是1次提交。更具体地说,您可能需要:
git merge --ff-only <commit-specifier>
分支
的提示提交比主
的提示提交早八次-或者是?我想每个人都同意A
比master
早一个提交,而B
早两个提交。但是C
和E
以及D
和F
呢C
领先三名,但E
也领先三名;和D
和F
都领先四名。但是G
并不比master
领先五位:它似乎比master领先七位。同样地,H
akabranch
似乎比master
领先八位
因此,如果我告诉您提前三次提交,您会选择提交C
,还是E
?你会给我一个错误,还是一个选择?为什么?
如果将事物约束到线性链,我们可以枚举“在”master
和branch
之间”的提交,不包括master
和includebranch
,包括:
git rev-list --reverse master..branch
然后,列表中的第N个commit是要提交给
git merge--ff only
的提交散列。但是如果在这两点之间有分支和合并链,整个问题就会变得棘手。来自mastergit merge B
@RaymondChen该死,我是个白痴。如果你想回答这个问题,我可以接受它,它可能会帮助其他同样被3-O时钟击中的人?继续回答你自己的问题并接受它。我不需要假想的点。对于n次提交,你可以使用git merge X
其中X在master之前是n次提交。
git rev-list --reverse master..branch