我将分支B合并到分支A上。有很多错误。如果在B / file1上有一些调试代码,我想" unstage"因为现在那段代码在B和A上是相同的。但是,我认为你不能在合并时取消。我是手工完成的,但这非常耗时且容易出错。基本上,我想合并两个分支,并选择合并中的更改。我无法使用樱桃选择因为提交太多了。
答案 0 :(得分:1)
如果你真的介意反对樱桃挑选(可能,我会坚持使用它的音序器功能),可能是这样的:
hamcrest-all-1.3.jar
我们的想法是创建合并,然后还原“不良变化”。在里面。从技术上讲,它完全符合您的需求。但是根据你的情况的细节,这可能是一件好事,因为来自合并的人们的期望通常假设BranchB的所有功能都已经在BranchA中。所以,要小心使用。
答案 1 :(得分:1)
对我来说,黄金命令是通过git rebase -i HEAD~<number>
进行互动重建。我发现以这种方式重写你的git历史非常容易。以下是您的具体案例:
制作一个临时分支只是因为你犯了任何错误:
git checkout -b <temp-branch-name>
删除您不想要的提交:
git rebase -i HEAD~<number-of-commits-backwards-you-want-to-go>
pick <commit-that-i-want>
pick <another-commit-that-i-want>
保存,然后切换到目标分支并将临时分支合并到其中:
git checkout <destination-branch>
git merge <temp-branch-name>