删除不需要的文件以减少 git 存储库大小

Removing unwanted files to reduce git repository size

由于出现了一系列错误,不久前我们的 git 存储库中添加了一些总计约 500MB 的图像目录。虽然文件已删除,但历史记录显然仍然包含存储库大小,它比应有的大得多。

这发生在不久前,此后已经有数千次提交。我做了一些研究,看起来最好的做法是使用 git filter-branch 重写历史记录以删除这些不需要的(但不敏感)目录。

对吗?如果是这样,(小型)开发人员团队和多个 staging/production 站点避免历史重写陷阱的最佳行动方案是什么?

git filter-branch 的替代方法是 BFG Repo Cleaner,它可以在很短的时间内完成类似这样的简单任务,并且可以更轻松地确保正确复制所有标签。它还会自动正确翻译包含在提交消息中的哈希值。

重写历史时,总是会出现问题。您将必须强制获取通常使用默认获取的所有位置。

任何拥有尚未推送到主存储库的未完成分支的开发人员应该能够按如下方式变基到新的历史记录:

git rebase --onto <new-branch-base> <old-branch-base> <branch-name>

是您希望分支分离的提交的哈希值。 是提交的哈希值,它是

的副本