繁体   English   中英

使用 git-filter-repo 过滤掉提交中不是给定提交的后代的文件列表

[英]Use git-filter-repo to filter out a list of files in commits which are not descendants of a given commit

似乎git filter-branch已被弃用,而应使用git-filter-repo 我正在使用git filter-branch --index-filter从提交中删除不是给定提交的后代的文件列表。 这就像

git filter-branch --index-filter 'git merge-base --is-ancestor aaaaaaaa $GIT_COMMIT ; if [ $? -eq 1 ] ; then git rm --cached --ignore-unmatch a.txt b.txt c.txt ; fi' HEAD

因此a.txtb.txtc.txt将从任何不是aaaaaaaa后代的提交中删除。 有什么办法可以用git-filter-repo实现这一点?

使用git filter-branch获得更好的效果,使用git filter-repo获得更好的效果。 我怀疑是否有可能让 filter-repo 完全按照您的要求做,或者至少做得不太好。

我建议简单地忽略对 git 过滤器分支的大多数批评,特别是过滤器回购自述文件中的批评,令人遗憾的是夸大了。 export FILTER_BRANCH_SQUELCH_WARNING=1放入~/.bashrc并完成它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM