使用Git filter-branch重命名几个分支的作者和提交者,包括标签

时间:2016-07-26 11:24:28

标签: git git-filter-branch

我需要更新以前的所有提交,以反映用户名的更改。

这需要对所有分支进行,并且还要遍历所有标记。我是唯一的提交者,这一切都只在我当地的回购中完成。

在这里使用众多来源我到达了命令

git filter-branch --env-filter "GIT_AUTHOR_NAME='new_name'; GIT_COMMITTER_NAME='new_name';" --tag-name-filter cat -f -- --all

似乎可以解决这个问题,但是

git log --all --graph

显示我现在拥有更多分支而不是覆盖......

我是否遗漏了上述代码段中的内容,或者我是否也需要运行某种形式的清理命令?

1 个答案:

答案 0 :(得分:1)

如果您指的是refs/original中的备份副本,则可以使用git-filter-branch的帮助页面上找到的命令轻松删除这些副本:git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d