繁体   English   中英

git rebase master错误地执行git pull而不是git push origin / your_branch -f后

[英]After a git rebase master mistakenly executed git pull instead of git push origin/your_branch -f

可能是由于缺乏睡眠而不是在git rebase master之后执行强制推送,我执行了git pull 现在我的拉取请求被弄乱了,包括来自master的所有提交。 有什么建议可以还原吗?

git reflog已多次为我提供帮助。

此参考日志记录对本地存储库/分支/参考的更新。

因此,在这种情况下,如果在拉动之前找到所需分支的起始提交,则可以将当前分支重置为该引用。 例如,重置为HEAD@{2}

git reset --hard HEAD@{2}

注意:使用--hard之前,请务必确定您的操作

Git reflog文档

运行git pull只是获取,然后合并上游分支。 假设合并成功,并且您仍然将该分支检出,则应使用以下方法解决此问题:

$ git reset @^1

这会将分支重置为第一个父级,该父级应该是经过重新设置的分支(第二个父级是该分支的旧上游版本的头部。)您可以在进行重置之前进行验证:

$ git log --graph @^1

要么

$ gitk @^1

如果这些看起来理智,则重置应执行此操作。 它不会触摸工作树中的文件,因此您可以查看是否导致任何令人惊讶的更改。 我怀疑不会有任何合并,因为就代码而言,合并可能是无操作的操作(再次假设成功)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM