GIT:我想将分支B合并到分支A中,但我不想合并所有更改。我希望将A上的一些差异复制到B上

时间:2016-03-26 02:48:22

标签: git merge

我将分支B合并到分支A上。有很多错误。如果在B / file1上有一些调试代码,我想" unstage"因为现在那段代码在B和A上是相同的。但是,我认为你不能在合并时取消。我是手工完成的,但这非常耗时且容易出错。基本上,我想合并两个分支,并选择合并中的更改。我无法使用樱桃选择因为提交太多了。

2 个答案:

答案 0 :(得分:1)

如果你真的介意反对樱桃挑选(可能,我会坚持使用它的音序器功能),可能是这样的:

hamcrest-all-1.3.jar

我们的想法是创建合并,然后还原“不良变化”。在里面。从技术上讲,它完全符合您的需求。但是根据你的情况的细节,这可能是一件好事,因为来自合并的人们的期望通常假设BranchB的所有功能都已经在BranchA中。所以,要小心使用。

答案 1 :(得分:1)

对我来说,黄金命令是通过git rebase -i HEAD~<number>进行互动重建。我发现以这种方式重写你的git历史非常容易。以下是您的具体案例:

  1. 制作一个临时分支只是因为你犯了任何错误:

    git checkout -b <temp-branch-name>
    
  2. 删除您不想要的提交:

    git rebase -i HEAD~<number-of-commits-backwards-you-want-to-go>
    pick <commit-that-i-want>
    pick <another-commit-that-i-want>
    
  3. 保存,然后切换到目标分支并将临时分支合并到其中:

    git checkout <destination-branch>
    git merge <temp-branch-name>