Py学习  »  Git

删除“旧”项目断开的Git历史记录

Joe • 6 年前 • 1778 次点击  

我通过复制现有代码创建了一个新项目。通常,我会克隆一个新的空存储库,从现有的类似项目中复制文件(不带.git文件夹),并删除所有相关文件。初始提交将是所有没有内容的工具/设置内容。

我不知怎么搞砸了-我们的CI只是试图发布1.0.0版本,但失败了,因为这个标签已经存在于Git中。它存在于我所接手的项目的历史上,在实际项目提交之前,不知何故,它是不连贯的:

enter image description here

新项目的初始提交是一个完整的提交——即,它不是现有提交的“顶层”。它不是删除文件,只是添加新版本。所以新旧历史完全脱节了。

不知道我是怎么做到的!

移除旧历史和标签的最佳方法是什么?我应该手动删除标签吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30769
 
1778 次点击  
文章 [ 1 ]  |  最新文章 6 年前
ikkentim
Reply   •   1 楼
ikkentim    6 年前

如果没有分支引用旧提交,并且没有标记附加到旧提交,并且新的初始提交不是旧代码的“子”提交(因此它没有父提交),则所有旧提交都是孤立的。

在屏幕截图中,仍然可以看到一些附加到旧提交的标记。

删除这些标签后( git tag -d TAGNAME && git push --delete origin TAGNAME )您可以在本地使用垃圾收集那些旧的提交 git gc --prune=now --aggressive . 您可能还需要在遥控器上进行垃圾收集。 Github according to this answer 自动定期运行GC。如果内存服务良好,Gitlab在项目设置中提供了一个选项。对于其他服务提供者,请参考其关于如何执行GitGC的手册。