68
|
David van Dugteren · 技术社区 · 14 年前 |
![]() |
1
44
Git通常不会扔掉任何东西,但从中恢复可能仍然很棘手。
如果你有正确的信号源,你可以用
最好的做法是:备份所有内容,查看本地存储库中还有什么。尽可能在遥控器上执行相同的操作。使用
最重要的是,不要使用
|
![]() |
2
44
如果知道提交哈希,那么很容易,只需重新创建分支即可。
删除远程分支:
然后使用以下命令重新创建分支:
|
![]() |
3
19
已经提到了解决方案 here
|
|
4
6
如果您不在强制推送来源的本地回购上,则在原始/主级别无法恢复。但如果你是 幸运的 足够使用 GitHub 或 GitHub for Enterprise ,你可以看看 REST api和retrieve lost commit as patch,示例:
|
![]() |
5
2
我在为一个文件撤消最后一次推送时做了同样的事情。最终返回到存储库的原始状态。我使用的是来自linus的git命令,因为我在Linux上有本地副本。幸运的是,那份拷贝还完好无损。 我所做的只是(在疯狂地复制了几份本地回购协议之后):
(据说源头/主人领先68个承诺,很好……这些都是我删除的承诺)
在我用力推之前,一切都恢复了原状。 最重要的是记住永远不要做一个git结帐。在你用力推之后。但最好的做法是禁用推送选项。我再也不用了。我吸取教训了!! |
![]() |
6
2
另一种恢复丢失的提交甚至弄清楚丢失了什么提交的方法是查看您的CI机器,如果以前的推送不是来自您的本地回购。 如果您有一个在每次提交(或一系列连续提交)之后测试主分支的作业(您应该有),那么您可以看看最后测试的是什么。这就是您需要恢复的提交。 CI机器甚至可以保留repo的本地克隆,您可以从中执行此恢复。 |
|
7
0
在这里你可以阅读决定 https://evilmartians.com/chronicles/git-push---force-and-how-to-deal-with-it 第二个帮助了我。 我做错了这些命令
在这些命令之后,我失去了三次承诺。为了恢复它们,我查看了终端,在那里我做了错误的“git pull”,并看到了输出 60223BF…0B258EB某些分支->来源/某些分支 第二个hash 0b258eb正是我需要的。所以,我接受了这个哈希并生成命令
|
![]() |
usergs · 推送到github时忽略某些文件 6 年前 |
![]() |
Emadpres · 如何匿名提交对Git存储库的更改 7 年前 |
![]() |
four-eyes · 从特定提交开始创建新分支 7 年前 |
![]() |
Shan Khan · 如何将主分支历史重写为其他存储库主分支 7 年前 |
![]() |
Marty.H · 尝试git提交时出错 7 年前 |
![]() |
PlayHardGoPro · 我可以列出当前提交的文件吗? 7 年前 |