我看到两种可能性:
使用远程主控
通过创建合并请求来跟踪我使用Gitlab获得的工作流程,并将更改从主分支合并到我希望更新为主服务器的分支
这两种方法有哪些优点和缺点?我更倾向于第一种方法。你们说什么?
答案 0 :(得分:18)
简单的答案 - 有很多更复杂的答案 - 只是做一个合并,所以:
git checkout master
git pull
git checkout <your-branch>
git merge master
(这实际上与您在选项2中描述的相同)
根据您的设置,您可能不需要所有这些步骤(但这些步骤都不会受到影响) - 我建议您阅读每个命令,以找到最适合您的精确工作流程。
这会将master中的更改合并到您的分支中,并可能创建一个新的提交,并注释表明它是合并。
另一种更高级的选项是rebase
,而不是merge
,这将有效地将时间倒退到您的分支与主分支的点,然后提取更改master,使你的分支与master保持一致,但没有你的提交,最后在最后应用你的提交。这样做的好处是它可以使历史变得更加简单 - 您只需获得一条直线变化,最后得到分支的更改,而不是在合并点连接的两个独立分支。
要做到这一点,你可以这样做:
git checkout <your-branch>
git rebase master
我建议阅读关于rebase的文档,因为有很多情况会让它变得困难,如果你是git的新手,肯定会去合并,但是当你更自信的时候再回来吧 - 这是一个非常强大的功能,更像我认为您在选项1中描述的内容。
答案 1 :(得分:3)
当你在当前分行git merge master
答案 2 :(得分:2)
如果您remote
设置为默认origin
,(您可以使用git remote -v
进行检查),您可以这样做:
git merge origin master
答案 3 :(得分:0)
您还可以重新设置基准:
git rebase origin/master