“取消还原”强制 git push [重复]

Posted

技术标签:

【中文标题】“取消还原”强制 git push [重复]【英文标题】:"Un-reverting" a forced git push [duplicate] 【发布时间】:2016-08-27 03:02:01 【问题描述】:

这就是发生的事情,我不小心在我们的 Git 存储库中恢复了开发分支,它恢复到上周删除了一周的代码和数据。

这是我用来还原的命令

git reset --hard <revision_id_of_last_known_good_commit>
git push --force

不幸的是,当我运行此命令时我不在我的分支中,它会擦除​​数据并将 HEAD 设置为 7 天前的状态。

Git 分支:

开发 resetfeature(我的远程分支)

我没有恢复远程分支,而是恢复了“开发”分支。 如何恢复丢失的数据?

【问题讨论】:

现在是时候保护那些关键分支不被强制推送了。 【参考方案1】:

阅读此处提供的完整答案:

How to move HEAD back to a previous location? (Detached head)


最好的方法是使用git reflog 来恢复您的更改

git reflog

git reflog 将显示更新 HEAD 的任何更改,并且检查所需的 reflog 条目会将 HEAD 设置回此提交。

每次修改 HEAD 时,reflog 中都会有一个新条目

git reflog
git checkout HEAD@...

这会让你回到你想要的提交

因此,请检查您的本地 reflog 以找出您希望恢复到的所需提交,然后检查并分支(再次阅读随附的完整答案如何操作)

【讨论】:

【参考方案2】:

我使用本教程恢复了我的数据,

http://effectif.com/git/recovering-lost-git-commits

感谢大家的回答。

【讨论】:

以上是关于“取消还原”强制 git push [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Angular:运行Git push时如何强制运行单元测试?

GIT的Push和Pull,强制Pull覆盖本地命令

如何“取消还原”已还原的 Git 提交?

git push出现403错误怎么办

如何禁止GitLab分支被push

如何禁止GitLab分支被push