【发布时间】:2017-05-09 07:29:43
【问题描述】:
我目前有一个私有的 GitHub 存储库,它已经存在了几年。在README.md 文件中有一个许可证,不再准确。
现在我想把这个私人回购变成一个公共回购,使用固定的许可证。无论如何,所有旧的提交仍然包含旧的(错误的)许可证。
我该如何解决这个问题?我的第一个想法是squash the repository to a single commit and destroy everything else,但也许有更好的方法来实现我想要的。
从另一个问题可以看出,保留历史并不重要,但 OTOH 也没有什么坏处。
真正痛苦的是旧的提交使用错误的许可证。
有什么想法吗?
PS:我想确保没有人能够获得旧的提交,即使他们知道提交的 ID。所以,解决这个问题也要注意更新远程仓库,比如GitHub。
【问题讨论】:
-
您可以使用
git filter-branch来执行此操作,但历史记录不应该反映从那个时间点更改了许可证吗?还是您要为整个项目追溯更改它? -
我正在为整个项目主动更改它,并且我不希望它可以通过旧许可证公开使用(即使这仅适用于源的旧状态)。在我公开之前,我想要所有东西的新许可证。
-
@NoufalIbrahim
git filter-branch是否允许您编辑历史记录中的文件?我认为这只是删除文件。我认为听起来你最好的选择是压缩提交并重新开始。 -
哦,是的。给我一秒钟。 :)
标签: git github git-rewrite-history