我有2个远程分支功能和主人。在master的功能分支上进行了压缩合并。后来的提交在master和feature分支中都发生了。 现在我尝试从master到feature进行另一次定期合并。事实证明这是有问题的,因为新的合并并不完全符合已经发生的壁球合并。一点点搜索显示壁球合并是问题所在。
所以现在我正在努力做到以下几点 -
$ git revert --no-commit sha1
$ git revert --no-commit sha2
...
$ git commit -m"恢复分支直到壁球提交"
$ git push origin HEAD:refs / for / branch / feature
现在,当我执行git log时,我的功能分支显示了revert的额外提交。
现在我想尝试以下方法将主服务器合并到还原功能 -
$ git merge --no-ff origin / master -m" master with master"
我的远程仓库已启用Gerrit审核
我的问题是 -
这会包含从主人到功能的所有最新更改,包括旧壁球合并的主要更改吗?
此合并是否会产生单一的gerrit审核?
如果我的方法不起作用,任何简单的解决方案?
欢迎任何帮助。感谢。
答案 0 :(得分:0)
您的问题的答案:
我不知道,但是,但是我敢打赌你一分钱一分钱(如果你愿意的话还是一分钱到一美元)你将会遇到git revert
< / p>
不知道,但我对此表示怀疑 - 见下文
是的(因此,我希望这不是一个完全没用的答案)。
不要git revert
。 git revert
放入另一个提交,它与命名提交相反,使你的混乱变得更大。 git revert
是一个可怕的工具,用于撤消最近的合并错误。这是一个更好的撤消历史单一提交的工具。你真正想要做的就是假装从未发生过合并错误。
相反:
git reset --hard [commitBeforeYouMadeTheMess]
git merge ...
(或之前你做过的任何事情)为安全起见,您可以在git branch backup-my-mess
之前的地段之前,或在另一个分支git checkout -b see-if-I-can-clean-up-my-mess
中进行此操作。
请注意,如果你已经推了你的烂摊子(亲爱的),你可能需要用力推动来解决它。
如果你想避免这种情况,也许可以使用不同的功能分支(foobar-2
或其他),并在有问题的提交之前进行分支,然后假装前一个功能分支从未存在过。
这并没有专门针对遗传点(因为我不是一个精灵人),但你需要先把git放在右边。
答案 1 :(得分:0)
是否可以通过Gerrit恢复提交。您可以在提交的补丁集页面找到该按钮。它非常简单方便。我建议不要将master合并到feature分支而不是rebase it。