这是情况。 github上有3个分支:master,his-tests,my-tests 我们暂时忘掉主分支。在对master进行初步工作之后,我工作的人创建了一个分支'his-tests',在那里他继续开发代码。然后我根据他的创建我的分支:
git checkout -b my-tests
我在my-tests中添加了一些更改,提交并将其推送到github。我的合作者看到了这些变化并在他的分支中实现了这些变化(他的测试)。几天后,他添加了更多更改,我想在我的分支(my-tests)中实现它们。我该怎么做?我知道我可以删除我的分支并再次克隆他的分支,但我不能继续这样做。处理它的正确方法是什么?因此,当我访问github时,我可以看到他的分支中有变化(通常是1或2个文件):
git branch -a
master
* my-branch
his-branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/my-branch
remotes/origin/his-branch
那么我该如何将他的分支与my-branch合并。他拥有最新的文件状态,我希望更新my-branch中的所有文件。你可以看到我已经结帐并且总是在我的分支机构工作,我不会在他的分支机构中进行更改。这个更新my-branch的循环的工作流程是什么,然后继续进行更改并添加一些更改并将我的更改推送到github上的my-branch。
您还需要更多信息吗?谢谢
答案 0 :(得分:1)
那么我该怎么做才能将他的分支与我的分支合并
你将他的分支与我的分支合并!
首先,确保您的本地仓库与您在GitHub上看到的匹配:
$ git checkout his-branch
$ git pull
在您的本地仓库更新后,您可以将his-branch
中的新内容合并到my-branch
中:
$ git checkout my-branch
$ git merge his-branch
使用git merge
将允许git处理两个分支之间的任何可能的冲突。如果您有冲突但又不关心它们,并且您只想让您的分支与他的分支相同,放弃分支中的其他所有内容,则可以使用git reset
移动分支:
$ git checkout my-branch
$ git reset --hard his-branch
答案 1 :(得分:1)
你必须将他的分支合并到你的分支中:
git checkout my-test
git merge his-test
你也可以rebase
改变他的分支。这将保持历史不变,但你修改历史(有些人认为是坏的)
git checkout my-test
git rebase his-test
如果你的同事在另一个遥控器上。首先添加遥控器:
git remote add my-colleague-remote git@hisremote.com
然后,您引用此遥控器上的分支保持:
git fetch my-colleague-remote
git merge my-colleague-remote/his-branch