在跳回答之前,请仔细阅读这个烂摊子!
问题:
- 我正在开发一个项目(使用 git 进行版本控制)。
- 我创建了标签 v2.x 并将其推送到我的远程源。
- 这个远程源是一个私有镜像,在 1.x 系列中没有标签。原因- 我们在 v2.x 中从头开始编码,因此仅出于历史原因维护 1.x。
- 没有意识到这一点,我在我们的公共 github 存储库中添加了另一个遥控器。
- 我想让镜像最新的标签并提交到 github(因为我是唯一的开发人员 - 我没有费心合并!)
我用了:
git push --mirror
它从 Github 中删除了 1.x 系列中的所有标签!
现在的情况:
- 我搜索了很多,阅读了 git 手册。尝试运行 git reflog/reset/rebase 但无法恢复任何内容。
- 我当地的环境。没有与标签 1.x 相关的提交,因为我们在 2.x 中从头开始
- 即使到目前为止我还没有恢复任何东西,我在 Github 上看到了远程提交。例如 https://github.com/rtCamp/buddypress-media/commit/4614fcdacfbe21dae88e50e66707ef57b786ee37
这意味着数据存在于远程...
什么可能有效:
如果我可以使用所有日志克隆 Github 存储库,包括有关本地已删除“提交”的日志,那么我的“本地”也将删除提交。之后可能是 git reflog/rebase/reset 练习。
我假设由于远程 git 本身就是一个完整的存储库,并且它通过 SHA1 哈希显示提交,如果我可以在“远程”上运行 git reflog/rebase/reset,理论上可能会起作用。
请注意,我正在寻找纯 git 方式。我们可以手动下载“标签”(zip),从 SVN 恢复(我们在 1.x 期间使用 SVN)
请让我知道您的建议/解决方法。