Git 使用远程 Master 更新本地分支
Git Update Local Branch with remote Master
我看到这样做的两种可能性:
用远程 master 的更改替换本地分支
通过创建合并请求来遵循我使用 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
我看到这样做的两种可能性:
用远程 master 的更改替换本地分支
通过创建合并请求来遵循我使用 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