我分叉了另一个存储库,然后向其中添加了许多文件。我有时会合并原始存储库中的更改以保持最新状态。
我意识到我的叉子中有一些文件应删除,因此我尝试按照[1]从git存储库中删除一些文件。源仓库有数千个提交,而我有数百个。
当我执行命令时,它也会尝试搜索所有源提交,而不仅仅是我的fork提交,这将花费数小时而不是数分钟。
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch filename.txt' --prune-empty @
上游之间有许多合并。
master A---B---C---D---E---F---G (HEAD)
/ /
upstream/master H---I---J---K
[1] https://help.github.com/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository
我还没有看过该filter-repo
命令,但是您可以提供filter-branch
要检查的提交的确切列表,将--
arg送入rev-list
filter-branch
运行以生成其候选对象后的所有内容,例如
git filter-branch --index-filter "$myfilter" -- --first-parent HEAD
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句