Git 使用远程 Master 更新本地分支

Git Update Local Branch with remote Master

我看到这样做的两种可能性:

  1. 用远程 master 的更改替换本地分支

  2. 通过创建合并请求来遵循我使用 Gitlab 的工作流程,并将 master 分支的更改合并到我希望从 master 更新到最新的分支

这两种方法的优缺点是什么?我更倾向于第一种方法。大家怎么说?

当您在当前分支时git merge master

简单的答案——还有很多更复杂的答案——就是进行合并,所以:

git checkout master
git pull
git checkout <your-branch>
git merge master

(这实际上与您在选项 2 中描述的相同)

根据您的设置,您可能不需要所有这些步骤(但全部执行也无妨)- 我建议您仔细阅读每个命令以找到最适合您的精确工作流程。

这会将 master 中的更改合并到您的分支中,并且可能会创建一个新的提交,并通过注释清楚地表明这是一次合并。

另一种稍微更高级的选择是 rebase,而不是 merge,这将有效地将时间倒回到您的分支与 master 分叉的点,然后拉入在 master 上进行更改,将您的分支 in-line 带入 master,但没有您的提交,最后在最后应用您的提交。这样做的好处是它使历史记录更加简单——您只需获得一条直线的更改,您的分支的更改就在最后,而不是两个单独的分支在合并点加入。

要做到这一点,你会做:

git checkout <your-branch>
git rebase master

我建议阅读有关 rebase 的文档,因为有很多情况会变得困难,如果您是 git 的新手,一定要进行合并,但是当你更有信心 - 这是一个非常强大的功能,更像我认为你在选项 1 中描述的那样。

如果你的remote设置为默认的origin,(你可以使用git remote -v来检查),你可以这样做:

git merge origin master

你也可以变基:

git rebase origin/master