我需要更新以前的所有提交,以反映用户名的更改。
这需要对所有分支进行,并且还要遍历所有标记。我是唯一的提交者,这一切都只在我当地的回购中完成。
在这里使用众多来源我到达了命令
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
显示我现在拥有更多分支而不是覆盖......
我是否遗漏了上述代码段中的内容,或者我是否也需要运行某种形式的清理命令?
答案 0 :(得分:1)
如果您指的是refs/original
中的备份副本,则可以使用git-filter-branch
的帮助页面上找到的命令轻松删除这些副本:git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d