2

这是情况。github 上有 3 个分支:master、his-tests、my-tests 让我们暂时忘记 master 分支。在 master 上的初步工作之后,与我一起工作的一个人创建了一个分支“his-tests”,他继续开发代码。然后我根据他创建了我的分支:

git checkout -b my-tests

我在我的测试中添加了一些更改,提交并将其推送到 github。我的合作者看到了这些变化并在他的分支(他的测试)中实施了它们。几天后,他添加了更多更改,我想在我的分支(我的测试)中实现它们。我该怎么做?我知道我可以删除我的分支并再次克隆他的分支,但我不能继续这样做。正确的处理方法是什么?所以当我访问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,然后处理它以添加一些更改并将我的更改推送到 github 上的 my-branch。

您还需要更多信息吗?谢谢

4

2 回答 2

1

那么我该怎么做才能将他的分支与我的分支合并

您将他的分支与我的分支合并!

首先,确保您的本地存储库与您在 GitHub 上看到的相符:

$ git checkout his-branch
$ git pull

一旦你的本地仓库是最新的,你可以将新的东西从合并his-branchmy-branch

$ git checkout my-branch
$ git merge his-branch

使用git merge将允许 git 处理两个分支之间任何可能的冲突。如果你有冲突但你不关心它们,你只是希望你的分支和他的一样,放弃你分支中的所有其他东西,你可以移动你的分支git reset

$ git checkout my-branch
$ git reset --hard his-branch
于 2013-01-07T22:12:28.873 回答
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
于 2013-01-07T22:12:54.763 回答