由于出现了错误的喜剧,不久之前我们的git存储库中添加了一些总计约500MB的图像目录。在删除文件的同时,历史记录显然仍然包含存储库大小,它应该比它应该大得多。
这发生在不久之前,自那以后已有数千次提交。我做了一些研究,看起来最好的做法是使用git filter-branch
重新编写历史记录来删除这些不需要的(但不是敏感的)目录。
这是对的吗?如果是这样,(小)开发团队和多个舞台/制作网站的最佳行动方案是什么,以避免历史重写的陷阱?
答案 0 :(得分:2)
git filter-branch
的替代方法是BFG Repo Cleaner,它可以在很短的时间内执行这样的简单任务,并且可以更加简单地确保正确复制所有标记。它还会自动正确转换提交消息中包含的哈希值。
与重写历史记录一样,可能存在问题。您必须强制获取通常使用默认提取的所有位置。
任何尚未推送到主存储库的优秀分支机构的开发人员都应该能够重新登录新历史记录,如下所示:
git rebase --onto <new-branch-base> <old-branch-base> <branch-name>
&LT;新分支基&GT;是您希望分支发散的提交的哈希值。 &LT;旧分支基&GT;是提交的哈希值,它是&lt; new-branch-base&gt;
的副本