美文网首页
git篇之filter

git篇之filter

作者: 清宵寒夜 | 来源:发表于2021-08-17 14:57 被阅读0次

从每一个提交中移除一个文件

git filter-branch --tree-filter 'rm -f filepath' HEAD
--tree-filter 选项在检出项目的每一个提交后运行移除文件命令然后重新提交结果。
--all 在所有分支上执行这个操作。

使一个子目录做为新的根目录

git filter-branch --subdirectory-filter subdir HEAD
Git 会自动移除所有不影响子目录subdir的提交。

全局修改邮箱地址

git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "oldEmail" ];
        then
                GIT_AUTHOR_NAME="new name";
                GIT_AUTHOR_EMAIL="newEmail";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

这会遍历所有提交并修改邮箱地址为新邮箱地址。 因为提交包含了hash值校验和,所以这个命令会修改每一个提交的哈希值校验和, 而不仅仅只是那些匹配邮箱地址的提交。

相关文章

网友评论

      本文标题:git篇之filter

      本文链接:https://www.haomeiwen.com/subject/ausoultx.html