如何合并本地和远程分支之间的更改?

时间:2012-04-29 17:30:22

标签: git

我的git存储库中有2个分支:

  capsule-os
* remotes/m/ics

capsule-os是我对remotes / m / ic分支的本地更改的分支。我使用(并构建)capsule-os分支,但有时会更新/ m / ic更新,我想将此更改与我的本地分支同步(事实上,将我的更改添加到此远程分支)。我该怎么办?

2 个答案:

答案 0 :(得分:3)

Amber's answer是正确的,但我认为可能值得用替代方法添加答案而不是合并。

如果您尚未发布capsule-os分支,则可能需要将更改“重新”更改为更新的m/ics分支,例如用:

# Make sure you're on the right branch:
git checkout capsule-os

# "Replay" all of your commits on top of m/ics, and update
# capsule-os to point to the result:
git rebase m/ics

(您可能必须解决一些冲突 - 如果您不能轻易解决这些问题,您可以将capsule-os分支恢复到原来git rebase --abort的状态。)

作为替代方案,您可以一次性获取ics分支的新版本并将其重新绑定到:

git pull --rebase m ics

使用git rebase有很多种不同的方法,但它们基本上都涉及一组提交,并且对于每个提交,尝试重新应用提交引入到其他提交的更改。这经常用于将一组提交“移动”到更新的上游分支上,以保持历史记录简单。

我将此限定为“如果您尚未发布capsule-os分支”是因为重写分支的历史记录会给正在处理该分支的原始版本的协作者带来困难。但是,如果它仍然是私人工作,那么变基是一种很好的方式,可以使您的分支机构与上游保持同步,并且仍然保持历史简单。

答案 1 :(得分:1)

假设您的遥控器名为m

git pull m ics

http://gitref.org/remotes/#pull

相关问题