在Git存储库中针对master更新过时的分支


123

我有一个Git存储库,它的分支(本地和远程)已经过时了。我想使这个分支与master分支保持最新,但是我不知道该怎么做。可能还会有许多合并冲突。

如何将过时的分支带入或更新为与master分支相同的状态?


1
如果您来这里是为了了解如何在Git存储库中针对master更新过时的分支,如果您尚未在本地分支中进行任何更改,则只需执行“ git pull”
破旧的

Answers:


152

更新master分支,无论您需要做什么。

然后,执行以下操作之一:

  1. 将旧分支与主分支重新建立基础。解决了在变基期间的合并冲突,结果将是一个最新的分支,该分支与master完全合并。

  2. 将您的分支合并到master,并解决合并冲突。

  3. 将master合并到您的分支中,并解决合并冲突。然后,从您的分支合并到master应该是干净的。

这些都没有一个比另一个更好,它们只是具有不同的权衡模式。

我认为我将使用重新基准化方法,该方法可以为以后的读者提供更清晰的总体结果,但是这除了个人喜好之外。

要重新设置基础并保留分支,您可以:

git checkout <branch> && git rebase <target>

对于您的情况,请检查旧分支,然后

git rebase master 

让它针对主人重建。


1
@Andrew:git rebase:)
CharlesB 2012年

1
git checkout $branch && git rebase $target-对于您的情况,请检查旧分支,然后git rebase master针对主分支进行重建。
丹尼尔·皮特曼

3
您的回购公开吗?如果它是公开的,可以重新设置基准吗?
event_jr 2012年

4
在远程分支机构中使用rebase时的良好建议:仅当任何人未在该远程分支机构上推送提交时,才针对master分支对该远程分支机构进行rebase。
Dherik 2015年

重新设置完成后,您需要使用-f选项推送更改。重写历史记录时,需要强行推送。
Opster Elasticsearch Ninja
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.