git-filter-branch

来自百合仙子's Wiki
跳转到导航 跳转到搜索

使用脚本对git仓库作大修改。

示例

删除指定的文件并修改指定的提交:

git filter-branch --tree-filter 'rm -rf pyexe/mailip.py pyexe/filebak2 pylib/filebak2' --msg-filter '
sed s/d101601/~8/
' --prune-empty -f HEAD --all

批量修改作者和提交者:

git filter-branch --env-filter 'GIT_COMMITTER_NAME=依云 GIT_COMMITTER_EMAIL=email GIT_AUTHOR_NAME=依云 GIT_AUTHOR_EMAIL=email' -- --all

选项

--all
修改所有分支
-f
覆盖备份,否则第二次运行时将被拒绝
--prune-empty
清除空提交

注意:filter 命令是使用 /bin/sh 运行的,因此不支持 {a,b} 扩展!

参见

外部链接