撤消上次提交/合并

我把我的git repo搞砸了一下。我在一个单独的分支中处理了一个功能。完成工作后,我切换到主人将其合并,但我的伙伴推了几个与我发生冲突的文件。合并之后,冲突和推动新的变化,我看到我也承诺了我的伙伴的旧变化。 现在我想重做这个提交/合并。我试过了
git reset --soft HEAD^
但是当我想推动时,我收到了这个错误消息
Merge the remote changes before pushing again
。 谁能帮我?     
已邀请:
您的功能分支仍将指向您的工作。你不会丢失这些变化。 正如plaes所说,你可以重置一个主人
git reset --hard HEAD^
如果您想从分支中获取某些特定文件而不进行合并,可以查看它们:
git checkout yourbranch -- file1 file2 etc
如果你想在合并之前从master获得一些文件,你也可以检查这些:
git checkout master^ -- file3 file4 etc
这并不理想,但有时需要它。合并/可能/表示您拒绝合并中任何一方的某些更改。获得适当合并的最佳方法是:
git merge --no-commit yourbranch
从master,然后从上面运行git checkout命令,最后提交:
git add . -A
git commit
当你现在推动这个分支时,你需要添加
force
选项
git push --force
要么
git push -f
希望这可以帮助。     
这里的问题是您要撤消已经推送到中央存储库的更改。如果你没有在第一时间推动它们,那么git reset --hard / - soft / - 混合HEAD ^就可以完成这个任务。 因此,当你重新尝试推送到原点并更新远程参考时你的HEAD git抱怨,这不是你HEAD的祖先。使用--force:
git push --force origin master
    
呵呵,你几乎想通了:
git reset --hard HEAD^
    

要回复问题请先登录注册