Git合并master而不恢复提交

时间:2017-02-23 21:27:58

标签: git

我试图修复我的git分支,这就是我所做的。

我有一些应该在分支机构中开发的代码;但是,我承诺并推动掌握(提交A)。

然后我继续并恢复了该提交,并将恢复推送到master(提交B恢复A)。

然后我创建了一个提交A的分支并继续我的开发(提交C和D)。所以这就是我的树目前的样子:

* D (HEAD -> branch_a, origin/branch_a) removed testing code
* C updated
| * B (origin/master, origin/HEAD, master) Revert "new code"
|/  
* A new code

我希望能够将这个分支干净地合并回主人。通常情况下,我会git pull origin master进入我的分支,但在这种情况下我无法做到这一点,因为master具有A的回复。

我可以在branch_a中做些什么来确保它能够合并回master而不会丢失我的工作?

1 个答案:

答案 0 :(得分:0)

在输入问题后,我发现一个similar question碰巧有一个命令,它达到了我想要的结果。

由于对master的唯一提交是B,这是分支上不需要的提交,因此可以使用保持更改的策略将master合并到branch_a中在发生冲突时的分支。

branch_a运行git merge -s ours master,如果发生冲突,将使用master版本将branch_a合并到branch_a

此操作的结果将树更改为:

E (HEAD -> branch_a, origin/branch_a) Merge branch 'master' into branch_a
|\  
| * B (origin/master, origin/HEAD, master) Revert "new code"
* | D removed testing code
* | C updated
|/  
* A new code