还原远程合并

时间:2012-04-08 17:16:30

标签: git

我在一家名为Lion的分公司工作,我错误地做了这个:

git push origin lion:master

而不是

git push eng lion:master

基本上第二行是将狮子分支推送到临时heroku应用程序,但我错误地将我的所有代码合并到原始主人。

我怎样才能恢复?我的分支机构中有大约200个提交。

格雷格

2 个答案:

答案 0 :(得分:2)

假设没有其他人已经离开并获得了新的变化:

1)如果您可以直接访问origin存储库,则可以在git reset --hard <commit ID>的相关分支上执行origin

2)或者,您可以使用旧的提交ID执行git push -f

答案 1 :(得分:1)

命令'git reset'采用可选的commit参数。因此,如果您可以访问源存储库,则可以尝试:

git reset [--soft | --mixed] <last-good-commit>           # in the remote/origin repository

如果您无权访问存储库,则可以执行以下操作:

git checkout -b rework <last-good-commit>
git push origin rework:master                                   # The push merge will produce a commit that works back to <last-good-commit>