繁体   English   中英

Git合并master而不恢复提交

[英]Git merge master without reverting commit

我正在尝试修复我的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而不会丢失我的工作?

在输入问题之后,我发现了一个类似的问题恰好在其中有一个命令,它实现了我正在寻找的结果。

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

branch_a运行git merge -s ours master ,它会在发生冲突时使用branch_a版本将master合并到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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM