如何在保持新主服务器更改的同时将本地分支合并到更新的主服务器?

时间:2018-05-22 14:13:35

标签: git github

我有一个使用Git和GitHub的本地和远程存储库。让我们说回购只是两个文件。 fileA.html和fileB.html

我在本地启动一个分支并对fileA.html进行更改,然后将其推送到自己的分支(非主服务器)中的远程GitHub存储库。别人拉下主人,对fileB.html进行更改并将其推送到主人,现在更改了远程主人。

我仍然在自己的分支上工作,我的目标是将我的分支合并到主服务器中(使用新的更改)。

我可以做一个git pull origin master,现在我的本地主人是最新的。但是,当我启动分支时,对fileB.html的更改不存在。如果我与我的本地主人合并然后将其推上,那么这些更改是否会被覆盖?还是留下来?虽然我的本地主人现在已经更新了,但我觉得我需要用主人身上发生的变化更新我的分支

2 个答案:

答案 0 :(得分:0)

如果您正在使用分支A,并且主服务器中有更改,您可以使用git pull origin master将这些更改提取到当前分支A

当您按下时,您的更改和其他更改将在您的分支A(远程)中出现。

如果您正在使用Github,那么通常您将创建从分支A到主服务器的合并请求,然后可以查看&合并。

答案 1 :(得分:0)

这可能是流程:

$ git checkout master

拉出新的更改以将master保持为远程:

$ git pull

现在使用最新更改更新您的分支:

$ git checkout your-branch

将master合并到您的分支中:

$ git merge master

此时,fileB.html将作为遥控器,因为您只在fileA.html工作,所以您不应该有任何merge conflicts,一旦您在分支机构工作完毕,就可以执行pull request以便有人可以审核您的更改,如果获得批准,则可以将您的分支合并到master

merge你的分支成为主人,你可以这样做:

$ git checkout master

然后:

$ git merge your-branch

这是执行此操作的基本方法,您可以使用rebase来避免合并提交,例如,您可以执行此操作:

$ git checkout master
$ git pull
$ git checkout your-branch
$ git rebase master
$ git checkout master
$ git merge your-branch

这将执行fast forward,然后推送您的更改:

$ git push