我们一直在使用git开发一个功能分支。我时不时地将主服务器合并到此功能分支中,以使功能分支与主服务器保持同步,并便于在最后将功能分支合并到主服务器中。
然后,我意外地将功能分支合并到主服务器中(太早了,我打算像以前一样合并其他方式)。由于合并已被推送,我使用git revert -m 1 <merge-commit>
根据these instructions恢复推送的合并。
恢复似乎工作正常,但现在我遇到的问题是,当我尝试将主服务器合并到功能分支时,功能分支中的大多数更改都会被主服务器中的“旧”文件覆盖。看起来在恢复之后,主设备被认为具有较新版本的文件。我还怀疑,当我们完成时,我将无法将功能分支合并到主服务器中。
如何回到初始状态,我可以将主数据库中的更改合并到功能分支中,而不会覆盖功能分支中所做的所有其他更改?
答案 0 :(得分:1)
我执行了以下步骤,似乎解决了问题:
我只是尝试在主服务器中进行小更新并将其合并到功能分支中。只有次要更新被合并到功能分支中,而不是&#34;过时的&#34;来自主人的文件。
答案 1 :(得分:0)
您可以尝试在feature-into-master提交之前直接签出提交。从中分支(名为master2
或任何你想要的)。删除当前主服务器。然后从master2
分支到名为master
的新分支。
git checkout <hash of commit before feature merge in master>
git checkout -b master2
git branch -D master
git checkout -b master
git branch -D master2
删除github上的master
分支并推送新主人。这可能是一个圆形的方式,但它应该基本上将master恢复到以前的位置,并允许您继续合并到功能。