以下是发生的情况:
我有两个远程的 git 分支:master
和 feature1
。由于某些原因,我不得不对 feature1
分支使用 git push --force
,但我不知道当我使用 git push --force
时,它也会推送 master
分支。然后,一场灾难发生了,因为我将本地的 master
分支推到了远程仓库。
幸运的是,我的本地分支离远程分支并不太远。基本上,我的远程 master
在我本地 master
前面合并了两个 pull request。
所以我的问题是:我能重新打开这个 pull request 并重新合并吗?我注意到还有合并请求的提交版本,所以我担心如果我只是做一个新的 pull request,它会搞乱一些东西?理想情况下,我只想重新执行这两个请求的合并。
是否有其他方法来从这场灾难中恢复?我学到了 --force
是一个非常非常糟糕的选择。 :(
更新,以下是发生的例子:
我有以下的分支:
master
feature1
origin/master
origin/feature1
我使用GitHub的自动合并拉取请求
功能合并了两个拉取请求,但是我没有在本地机器上获取master
分支。所以,我认为我的origin/master
比远程主分支落后两个版本。
然后,我不小心使用了git -f push
,这覆盖了远程分支,现在我失去了远程仓库中拉取请求的提交记录。
我如何恢复它而不会弄乱其他贡献者的历史记录?
git push -force
命令。 - VonC