不还原提交的Git合并主机
我正在尝试修复我的git分支,下面是我所做的 我有一些应该在分支中开发的代码;但是,我提交并推送到master(提交A) 然后,我继续执行并恢复了该提交,并且还将恢复推到主控(提交B恢复A) 然后我创建了commit a的一个分支并继续我的开发(commit C和D)。这就是我的树目前的样子:不还原提交的Git合并主机,git,Git,我正在尝试修复我的git分支,下面是我所做的 我有一些应该在分支中开发的代码;但是,我提交并推送到master(提交A) 然后,我继续执行并恢复了该提交,并且还将恢复推到主控(提交B恢复A) 然后我创建了commit a的一个分支并继续我的开发(commit C和D)。这就是我的树目前的样子: * D (HEAD -> branch_a, origin/branch_a) removed testing code * C updated | * B (origin/master, orig
* 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将originmaster
拉入我的分支,但在这种情况下我不能这样做,因为master
具有A的还原
在
branch\u a
中,我可以做些什么来确保它能够合并回master
,而不会丢失我的工作?在键入问题后,我发现一个碰巧有一个命令在其中,它实现了我想要的结果
由于对master
的唯一提交是B,这是分支上不需要的提交,因此可以使用一种策略将master
合并到branch\u a
中,以防发生冲突时保持分支中的更改
从branch\u a
运行git merge-s ours master
,它将master
合并到branch\u 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
在输入问题后,我发现一个碰巧有一个命令在里面,它达到了我想要的结果 由于对
master
的唯一提交是B,这是分支上不需要的提交,因此可以使用一种策略将master
合并到branch\u a
中,以防发生冲突时保持分支中的更改
从branch\u a
运行git merge-s ours master
,它将master
合并到branch\u 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
你只是想忘记
B
,想让你的历史看起来像A->C->D
,对吗?@mkrieger1一旦我合并回master,是的,我基本上想忘记B
。最初的问题是A
一开始就不应该在master上,唯一需要B
的原因是A
在我准备好之前不在master上。你只是想忘记B
而想让你的历史看起来像A->C->D
?@mkrieger1一旦我合并回master,是的,我基本上想忘记B
。最初的问题是A
一开始就不应该在master上,唯一需要B
的原因是A
在我准备好之前不在master上。