如何将分支(或指定的提交)移动到另一个分支?

时间:2014-11-01 08:42:19

标签: git

我从master创建了一个分支,并在分支上提交了2个提交。

现在我需要将分支合并回主服务器,不知何故主服务器已经更改,我将更多提交合并到主服务器而不仅仅是我的2个提交。

这里最好的解决方案是什么? 我可以将分支(带2次提交)移动到新主服务器中吗?我的意思是,如果我想合并为master,我应该只提交2次提交。我希望我所做的不会影响在同一个存储库上工作的其他人。

我尝试了git rebase,但它与许多提交混淆而不仅仅是这两个。

2 个答案:

答案 0 :(得分:1)

如果你不打算将你的分支完全合并到master,但需要在master上提交这两个提交,你可以尝试一个挑选。

参见" How to cherry pick a range of commits and merge into another branch"和git cherry-pick man page

您还有其他选项(即使使用git merge),详见" Is it possible to exclude specific commits when doing a git merge?"

答案 1 :(得分:0)

x----x-----x---x---master
      \
       `--x---x--your branch

如果这是您的州,那么这些是您的选择:

  1. Cherry从您的分支机构中选择提交给主人
  2. 将您的分支重新定位到主分区,然后在
  3. 中合并主分区
  4. 将您的分支合并为主。
  5. 无论你做什么,一旦你推动了你的改变,其他人从你推到的同一个存储库拉出来将获得所有必要的提交。

    当你试图改变时,那不是Git“搞乱许多提交”。您可能遇到的是需要解决的冲突。 Git只会创建两个新的提交,在master的顶端,而不是很多。

    如果你对rebase不满意,我建议你把你的分支合并到主人。这是最安全的操作,因为它不涉及重新计算提交。你仍然会遇到冲突,但无论你选择哪条路线,你都必须解决它们。