我看到这样做的两种可能性:
使用远程主站的更改替换本地分支
通过创建合并请求来跟踪我使用Gitlab获得的工作流程,并将更改从主分支合并到我希望更新的分支到最新的主分支
这两种方法的优点和缺点是什么?我更倾向于第一种方法.你们说什么?
简单的答案 - 有很多更复杂的答案 - 只是做一个合并,所以:
git checkout master git pull git checkoutgit merge master
(这实际上与您在选项2中描述的相同)
根据您的设置,您可能不需要所有这些步骤(但这些步骤都不会受到影响) - 我建议您阅读每个命令以找到最适合您的精确工作流程.
这会将master中的更改合并到您的分支中,并可能创建一个新的提交,并注释清楚它是一个合并.
替代方案,稍微更高级的选项将是rebase
,而不是merge
,它将有效地将时间倒退到您的分支从主分支点,然后在主机上拉入更改,使您的分支与主机一致,但没有你的提交,最后在最后申请你的提交.这样做的好处是它可以使历史记录更加简单 - 您只需获得一条直线变化,最后得到分支的更改,而不是在合并点连接的两个单独的分支.
要做到这一点,你会做:
git checkoutgit rebase master
我建议阅读关于rebase的文档,因为有很多情况会让它变得困难,如果你是git的新手,肯定会去合并,但是当你更自信的时候再回来吧 - 这是非常的强大的功能,更像我认为您在选项1中描述的内容.