我看到有两种做法:
用远程主分支的更改替换本地分支
按照 Gitlab 的工作流程创建一个合并请求,将主分支中的更改合并到我想要更新为主分支最新内容的分支中
简单的答案 - 还有许多更复杂的答案 - 就是进行合并,因此:
git checkout master
git pull
git checkout <your-branch>
git merge master
(这与您在选项2中描述的基本相同)
根据您的设置,您可能不需要执行所有这些步骤(但执行它们不会有任何损害)。我建议您阅读每个命令以找到最适合您的精确工作流程。
这将把来自主分支的更改合并到您的分支中,并可能创建一个新的提交,其中包含一个注释,说明这是一次合并。
另一种选择,稍微高级一些的选项是使用rebase
而不是merge
,这将有效地将时间倒回到您的分支从主分支分叉的那一点,然后将主分支上的更改拉入,使您的分支与主分支保持一致,但不包括您的提交,并最终在末尾应用您的提交。这样做的好处是可以保持历史记录更简单 - 您只会得到一条直线变化记录,其中包括来自您的分支的更改在末尾,而不是两个在合并点汇合的分支。
要执行此操作,您需要执行以下操作:
git checkout <your-branch>
git rebase master
我建议你阅读关于rebase的文档,因为有许多情况下它会变得复杂,如果你是git的新手,一定选择合并,但当你更加自信时请回来使用rebase - 它是一个非常强大的功能,并且更像你在选项1中描述的内容。
remote
设置为默认值origin
,(可以通过使用git remote -v
进行检查),那么您只需执行以下操作:git merge origin master
当你在当前分支时,执行git merge master
You can rebase also:
git rebase origin/master
git fetch
,是吗?否则 origin/master
可能不包含来自远程主分支(origin master
)的最新更改。 - Tim Skov Jacobsen