撤消git推镜

时间:2015-06-18 07:56:49

标签: git github release mirror

我的项目有一台服务器。 我想迁移到github。 我做了一个推送 - 镜像到github。 我检查了备份是否可以反向完成 所以我做了一个push -mirror到我的服务器。 但这是我得到的:

To <adresse.git>
 + 1e35d97...3ef6b80 master -> master (forced update)
   c46a188..3ef6b80  origin/HEAD -> origin/HEAD
   c46a188..3ef6b80  origin/master -> origin/master
 - [deleted]         1.0.0
 - [deleted]         1.0.1
 - [deleted]         1.0.2
 - [deleted]         1.0.3
 - [deleted]         1.0.4
 - [deleted]         1.0.5
 - [deleted]         1.1.0
 - [deleted]         1.1.1
 - [deleted]         1.2.0
 - [deleted]         1.2.1
 - [deleted]         1.2_alpha1
 - [deleted]         1.3_alpha1
 - [deleted]         1.4_alpha1
 - [deleted]         4.0.0
 - [deleted]         5.0.0
 - [deleted]         5.0.1
 - [deleted]         xvp_current

我没有注意到(Ooooh错误..)并做了最后一次推送 - 从我的服务器镜像到今天早上github,最后一个输出结束了.. 这些是我的发布。有没有办法取消镜像或取回版本?

提前致谢!

2 个答案:

答案 0 :(得分:1)

好的,所以这是我的比喻:

你去了图书馆,得到了一本关于历史的书(你的git repo的克隆,其中包括了所有的历史记录)。

现在,你已经做了很多改动,这本历史书的补充,这可能是你付出的代价。

根本情况下,您已退回整本历史记录,包括您的添加内容。

现在你注意到了你的错误并且有点不高兴,因为你的笔记不适合公众。

你回到图书馆。如果你对图书管理员很好,你甚至可以用你刚买的新版本(从其他地方,或者从你的书的副本中重建)替换书架上的书,但你永远不会能够撤消这样一个事实,即其他人可能在你返回它之间获得了这本书并且你注意到了你的错误。

总结:你可以像git push origin :branch1这样从原始远程删除branch1,如果你有权这样做,你甚至可以通过{{1}来重写任何分支的历史记录。但是,这永远无法解决其他人看不到的事实,更糟糕的是,因为他们有git,只要这些人想要,它就会在他们的网站上存档。

关于你删除标签的事实:好吧,运气不好。找到您图书的另一个副本并从那里推送标签。

答案 1 :(得分:0)

我参与了一个备份项目,并且做了:

git push --tags