【问题标题】:How can I git pull --rebase but taking all remote changes?我怎样才能 git pull --rebase 但进行所有远程更改?
【发布时间】:2010-08-09 08:10:01
【问题描述】:

我先是git fetch,然后是git pull --rebase。它正在尝试将远程分支的更改合并到我的本地分支。并且存在一些合并冲突。所以我做了一个git reset --hard

我的问题是我可以在发生冲突时要求 git pull 进行远程更改吗?

【问题讨论】:

  • Once 也可以手动获取然后重新设置基准(例如 git fetchgit rebase -X theirs origin/foo

标签: git


【解决方案1】:

我想你想要的是这样的:

git pull --rebase -s recursive -X ours

但它不起作用(我使用的是 1.7.0.4),即使手册页上说应该这样做。我猜这是因为mentioned here 的问题。

相反,您可以使用:

git pull -s recursive -X theirs

它按预期工作,但你会得到一个 merge 而不是 rebase

另外 - 使用 --rebase 时请注意“我们的”,而不是“他们的”。来自 git-rebase 手册页:

[CLIP]... rebase 合并通过重播上游分支顶部的工作分支的每个提交来工作。正因为如此,当发生合并冲突时,被报告为我们的一方是到目前为止 rebase 的系列,从上游开始,他们的一方是工作分支。换句话说,双方交换了。 ...[剪辑]

【讨论】:

  • 如果我git pull --rebase upstream devel--strategy recursive 不是多余的吗?如果我正确理解联机帮助页,替代方案将是章鱼合并策略,但仅当组合超过 2 个分支时才需要。就我而言,只有两个(upstream/devel<local>/devel<local> 是我在 Github 上同步的 fork/devel 的工作副本)。因此,如果没有人反对它,我会使用git pull --rebase --strategy-option theirs
  • FWIW git pull --rebase -s recursive -X ours 为我工作,谢谢!
猜你喜欢
  • 2017-05-13
  • 2016-05-03
  • 2017-01-15
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多