启用快进选项的git重基
假设我遇到这样的情况:启用快进选项的git重基,git,git-merge,git-rebase,fast-forward,Git,Git Merge,Git Rebase,Fast Forward,假设我遇到这样的情况: a -- b -----------------c -- d -- e <-- Master \ f ------------l <-- Branch1 \ / g -- h -- i <-- Branch2 好了,现在我想把分支1的重新基址设置为主节点 如果使用git-rebase-master-Bran
a -- b -----------------c -- d -- e <-- Master
\
f ------------l <-- Branch1
\ /
g -- h -- i <-- Branch2
好了,现在我想把分支1
的重新基址设置为主节点
如果使用git-rebase-master-Branch1
,结果是:
a -- b -- c -- d -- e <-- Master
\
f -- g -- h -- i <-- Branch1
我在网上(包括stackoverflow)找不到任何有用的信息。解决方案
git-rebase
的-p
选项旨在解决此问题
这应该起作用:
git rebase -p master Branch1
从git rebase-h
开始:
-p, --preserve-merges
try to recreate merges instead of ignoring them
注意事项
感谢@andree指出这些问题,记录在git-rebase--help
中:
- 合并冲突解决方案或合并提交的手动修改不保留
- 将
与--preserve merges
相结合通常不是一个好主意--interactive
git-rebase-p
:从git-rebase-h
:-p,--preserve merges尝试重新创建合并,而不是忽略它们。注意:git-rebase
没有ff选项,但它的含义非常不同。您需要--保留合并
或-p
;或者,如果您的Git足够新,那么花哨的新--rebase合并了功能。看……努力。我需要再次克隆项目看起来是解决问题的一个不错的选项,但也许你也应该提到与此相关的问题,例如“合并冲突解决方案或手动修改合并提交未被保留”。“[…]将其与--interactive选项显式结合通常不是一个好主意[…]”@adree,这是否意味着重基将成功终止,但合并冲突将被忽略?@Leos313:不幸的是,我没有这方面的经验,这要归功于joanis。但是,这本书中似乎有一些有用的信息。很抱歉,它不起作用。它给出“错误:无法应用…commit\u name
”
git rebase -p master Branch1
-p, --preserve-merges
try to recreate merges instead of ignoring them