繁体   English   中英

推送后恢复丢失的提交

Recovering Lost Commits After Push

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我可以在恢复策略中使用一些帮助。 不知何故,我们最终处于一个提交下降约3天提交的位置。 然后被推了 提交者不确定他是否强迫推进或什么,但现在我们处于这个位置。 自“坏”提交以来,已经推出了大约10个额外的提交。

所有的旧提交都在那里,我可以将所有内容重新组合在一起,但我希望Git可以帮助我。 我想我可以挑选A点和B点之间的提交范围,但有什么更好的吗? 大多数(但不是全部)更改都是一个目录的本地更改,我宁愿不手动检查每个目录。

什么是正确的方法,记住一切都被推上游?

3 个回复
git reset --hard <one commit before the bad commit>
git cherry-pick <the range of commits you've lost>
git pull

通过这种方式,您可以模拟最后一次提交(使用reset )。 然后在本地创建新提交( cherry-pick )。 现在你引入了变化(也许是合并冲突)。

您可能有兴趣检查上游或本地git refloggit reflog 即使提交看起来像丢失了,它们实际上仍然可以在你的远程/本地存储库中闲置,只是没有分支指针。 他们不会永远保持这样,我认为git 默认每2周进行一次垃圾收集

可选配置变量gc.pruneExpire控制未被引用的松散对象在被修剪之前必须有多长。 默认为“2周前”。

您可以在ProGit§9.7:维护和数据恢复中阅读有关使用reflog恢复丢失工作的更多信息。

如果你在reflog中找到提交(或者你可能也想在git fsck --full查找它们),你可以附加一个分支指针来“恢复”它们。 然后你可能想要在顶部进行rebase或者cherry-pick更新的提交,以便(重新)构建你想要的任何提交历史树。

git revert将在新提交中撤消提交的更改。

1 在“hg strip”之后恢复丢失的提交[重复]

这个问题在这里已有答案: 撤消意外的hg条带? 3个答案 我有这个Mercurial存储库,我保留了一个计数器: 到目前为止很好,但后来我犯了一个错误: 所以我使用hg strip来恢复最后一次提交: 我不知道,我犯了另一个更大的错误! ...

2 在push -f之后恢复丢失的提交

我试图推送到远程存储库,但Updates were rejected because a pushed branch tip is behind its remote我Updates were rejected because a pushed branch tip is behind its ...

3 Solr-恢复Zookeeper后丢失配置

我只是继承了一个由7个服务器组成并通过Ambari管理的hadoop集群(以前从未使用过hadoop)。 如今,Ambari对server3上的所有服务以及ZooKeeper服务(托管在服务器1、2和3上),ZKFailOver(托管在服务器1和2上)以及ZooKeeper客户端(托管在4, ...

4 恢复错误合并后恢复丢失的更改

我对Git相对较新,在误解了一篇帮助文章之后犯了一个(愚蠢的)错误,我不确定如何使用Git完全解决问题,而不是手动将更改重新引入目标分支。 一些注意事项: S是这种情况下的主要分支, T1是从S拉出的团队分支, F是从T1拉出的我的功能分支。 我有自动合并设置,所以当提交到T1分支 ...

5 git pull 后恢复丢失的文件

我在我的 GitHub 上添加了一些旧作业。 我成功地将本地存储库中的一项分配添加到远程存储库,但错误地在我的 Web 浏览器中README.md添加了README.md 。 这导致我无法再在本地推送任何提交,因为 所以我做了一个git pull origin master命令来从 GitHub ...

6 恢复交换文件后丢失colorscheme

我现在已经搜索了一段时间,似乎没有人遇到我的问题。 我已经设置了vim以使用我喜欢的colorscheme并且它完全正常工作,直到我打开一个有交换的文件。 我得到了通常的消息,询问我是否要删除它,只读或恢复它。 我选择了恢复,在这样做后,我无法获得那个文件来显示我想要的颜色。 我尝试 ...

7 在 github 中强制推送时丢失所有提交

最近我在一个分叉的 repo 中创建了一个 PR 并添加了一些提交。 后来我不小心从git bash删除了分支( branch存在于我的分叉仓库中)。 所以我重新创建了一个同名的分支,并尝试推送新的提交。 但是一开始它拒绝了提交,所以我强制推送了提交,但这从github的 PR 中删除了所有以前的提 ...

8 git pull --rebase 在同事的 git push --force 后丢失提交

我以为我了解 git pull --rebase 是如何工作的,但是这个例子让我很困惑。 我会猜到以下两种情况会产生相同的结果,但它们有所不同。 第一,有效的。 所以效果很好。 在另一种情况下,想象一下 Dan 推动,然后 Brian(粗鲁地)推动 --force 来完成他的提交。 现在,当 ...

9 强制推送后恢复文件历史记录

我只是试图将我本地计算机上某个存储库的文件迁移到另一个目录,但似乎失败了。 将源文件复制粘贴到新文件夹后,我通过以下步骤尝试通过在新目录中执行以下操作来提交到原始GitHub存储库: 这(由于我现在已经习惯使用git)给我带来了一个错误: 对于为什么会这样一无所知,我只是天 ...

暂无
暂无

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

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