美文网首页
恢复git push -f origin master强推被覆盖

恢复git push -f origin master强推被覆盖

作者: 别来无恙_ly | 来源:发表于2021-11-05 17:33 被阅读0次

非特殊情况 git push -f origin master 不要乱用

操作方法
备份当前工作区的数据
你可以使用git stash等命令备份下现在正在写的代码
1.1在命令行输入git reflog/git log -g
显示所有历史操作,找到你需要的提交(包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录)


QQ截图20211105173105.jpg

2.1 强制回退到当时被删除的commit

git reset --hard <SHA1>
或者
git cherry-pick <SHA1>

直接把当时版本的工作拿回来。不过如果有冲突的话还要处理冲突。
3.1强推上远程分支

git push -f origin <branch>

如果引起commit丢失的原因并没有记录在reflog 中,比如运行了rm -Rf .git/logs/, 因为 reflog 数据是保存在 .git/logs/ 目录下的,这样就没有 reflog 了。
可以使用 git fsck 工具,该工具会检查仓库的数据完整性。如果指定 --full 选项,该命令显示所有未被其他对象引用 (指向) 的所有对象:


image.png

相关文章

网友评论

      本文标题:恢复git push -f origin master强推被覆盖

      本文链接:https://www.haomeiwen.com/subject/cxvrzltx.html