所以我有主人和工作分支。我已经在master分支中对文件进行了几处更改,并在工作分支中进行了修改。现在我必须将此更改从我的本地主分支推送到本地工作分支?静止是我如何做到的?
答案 0 :(得分:1)
你想要的是一个分支rebase。它会尝试将Branch-A
的历史记录与Branch-B
重新对齐。
git checkout work-branch
git rebase master
对于MOST场景而言,这就是它。您可能需要解决两个分支之间的冲突,但您必须在相同的位置编辑相同的文件才能实现。
答案 1 :(得分:1)
只需使用git merge或--ours
运行--theirs
即可修复冲突(如果有的话)我们的是您当前所在的分支他们的是您的行动中使用的另一个分支。
例如,如果您希望在work-branch
中合并所有更改,并且应从work-branch
获取冲突文件,则命令应为:
$ git checkout work-branch
$ git merge --strategy=ours local-master
否则,如果您希望在work-branch
中合并所有更改,并且应从local-master
获取冲突文件,则命令应为:
$ git checkout work-branch
$ git merge --strategy=theirs local-master
答案 2 :(得分:1)
同步分支的直接方式是进行合并(我的评论)或rebase(Strike的答案),具体取决于您希望工作历史和主分支随后查看的方式。 (净效应是相同的。)
但是既然你问这个问题,你可能正在寻找不同的东西,例如正确的主人到一个变化不可见的状态,将它们应用到工作分支,然后将工作分支合并到主,如标准工作流程会建议。
这样做的一种方法是
git log
找到)如果您尚未将master推送到其他存储库,则重置master是一个好主意。