首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Make git pull --rebase preserve merge commits

Make git pull --rebase preserve merge commits
EN

Stack Overflow用户
提问于 2012-08-08 19:44:09
回答 4查看 7.6K关注 0票数 17

git pull --rebase删除未推送的合并提交。有没有办法让它保存它们?

如果我的病史看起来像-

代码语言:javascript
复制
A
| \ 
B  H
|  |
C  G
|  |
D  F
| /
E

(A是合并提交。)

git pull --rebase之后它就变成了-

代码语言:javascript
复制
H
|
G
|
F
|
X
|
B
|
C
|
D
|
E

(X是插入到我的历史记录中的新提交git pull --rebase。)-A被删除。

我知道你可以通过git rebase使用git rebase --preserve-merges来保存它们,但是我看不到使用git pull --rebase来保存它们的方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-08 19:48:07

您可以将pull拆分为fetchrebase

代码语言:javascript
复制
git fetch origin master
git rebase origin master --preserve-merges
票数 18
EN

Stack Overflow用户

发布于 2013-09-12 13:35:40

更新:正如我在"What exactly does Git's "rebase --preserve-merges" do (and why?)“中所介绍的,从Git2.18 (Q2 2018)开始,您会更喜欢new option --rebase-merges而不是传统的--preserve-merge

从那时起:

stops advertising it in the "git rebase --help" output.,

所以:

代码语言:javascript
复制
git rebase --interactive --rebase-merges origin/master 
# or
git config pull.rebase merges
git rebase --interactive origin/master (would use rebase-merges)

2013年的原始答案:

或者(对于upcoming git 1.8.5 Q4 2013,现在在git 1.8.5中提供,2013-11-27):

"git pull --rebase“总是选择执行bog标准的展平重置。

您可以通过将"pull.rebase“配置设置为"preserve”来告诉它运行"rebase --preserve-merges“。

因此,一个简单的配置就足以确保您的pull --rebase确实保留了合并:

代码语言:javascript
复制
git config pull.rebase preserve

有关更多信息,请参阅commit 66713ef3 (感谢Stephen Haberman):

pull:允许在重新建立基址时使用pull保留合并

如果用户在

上工作,并且已经合并到他们的feature分支中,但是现在必须"git pull“,因为master移动了,随着pull.rebase的移动,他们的feature分支将被展平为master。

这是因为"git pull“目前不知道rebase的保留合并标志,这将避免这种行为,因为它只会将功能分支的合并提交重放到新的主节点上,而不会在功能分支中重放每个单独的提交。

添加一个--rebase=preserve选项,它将把--preserve-merges传递给rebase。

还要将'preserve‘添加到pull.rebase配置设置的允许值中。

票数 34
EN

Stack Overflow用户

发布于 2016-07-28 01:10:24

简单地说:

代码语言:javascript
复制
git pull --rebase=preserve

来自the docs

当设置为保留时,使用传递给git rebase--preserve-merges选项重新基址,这样本地创建的合并提交将不会被展平。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11863785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档