在Git存储库中将过时的分支更新为主分支

143

我有一个Git存储库,其中的分支(本地和远程)已经过时。我想将此分支更新为主分支的状态,但我不知道如何做到这一点。还可能会出现许多合并冲突。

我该如何将这个过时的分支带到与主分支相同的状态或更新呢?


1
如果您想了解如何在Git存储库中更新过时的分支以反映主分支,而且您在本地分支中没有进行任何更改,则只需执行“git pull”即可。 - shabby
1个回答

173

首先,更新主分支,这是必须的。

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

  1. 将旧分支变基到主分支上。在变基过程中解决合并冲突,结果会得到一个最新的分支,可以与主分支干净地合并。

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

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

这些方法没有更好或更差的区别,它们只有不同的权衡方式。

我会使用变基方法,在我看来,这可以为以后的读者提供更清晰的结果,但那只是个人品味而已。

要进行变基并保留您的分支,您需要:

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

根据你的情况,检查旧分支,然后

git rebase master 

重新构建以适应主分支。


2
在你的情况下,检出旧分支,然后使用 git rebase master 重新构建它以适应主分支。请执行命令:git checkout $branch && git rebase $target - Daniel Pittman
3
你的代码库是公开的吗?如果它是公开的,使用变基操作是否可行? - event_jr
5
在使用rebase处理远程分支时,一个好的建议是:只有在没有其他人在推送该远程分支的提交时,才将该远程分支与主分支进行rebase。 - Dherik
一旦重新定位完成,您需要使用“-f”选项推送更改。由于您正在重写历史记录,因此需要强制推送。 - Amit
如果你必须为每个分支进行变基,那么重新定位可能会非常烦人。你也可以从Github禁用“要求分支在合并之前保持最新”的设置,然后你就可以在不更新分支的情况下进行合并。还有一些工具可以自动完成这项任务。我过去使用过一个叫做https://mergequeue.com/的工具。该工具可以在合并之前自动重新定位分支。 - Ankit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接