我试图修复我的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
而不会丢失我的工作?
答案 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