【发布时间】:2018-10-10 10:55:46
【问题描述】:
我一直在使用 git filter-branch 来删除遗留文件,但是对于一个裸露的 git repo,我无法弄清楚如何重写我的 git 历史记录,其中我的一个 git 子模块被删除。
我有一个顶级仓库“Donald”,在“Donald”下面有四个子模块“Huey”、“Dewey”、“Louie”和“Phooey”[1]。 永远不应该添加“Phooey” - 不幸的是,时间已经过去了。
我找到的最佳参考是git filter-branch remove all submodules from my repo,但它有点太多了。
【问题讨论】:
-
您是否在其他人正在使用的分支上进行过滤分支?在这种情况下,这可能有点有害,因为由于您正在重写历史记录,因此您将重写您的队友已经签出并正在处理的提交。一般来说,在大多数情况下,使用 filter-branch 删除几个文件似乎有点过分了。如果我正确理解您的情况,对您的同事来说,最不打扰、最不复杂和最不必要的额外工作就是删除文件夹并提交删除。它在历史上也更加透明,人们会看到发生了什么。
-
@dvaergiller 我完全理解,但我有充分的商业理由朝这个方向发展
标签: git git-filter-branch git-bare