修改已经提交到远端的git commit信息
有这么一种场景,就是以前没有设置用户名和邮箱,导致提交时git commit信息中用户信息不正确。这样的情况导致后来我们提交代码到git上面时因为身份验证错误,只有到 push 阶段了才发现提交不上去。
后来请教大神发现了一种解决办法
git filter-branch --commit-filter ' if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ]; then GIT_COMMITTER_NAME="<New Name>"; GIT_AUTHOR_NAME="<New Name>"; GIT_COMMITTER_EMAIL="<New Email>"; GIT_AUTHOR_EMAIL="<New Email>"; git commit-tree "$@"; else git commit-tree "$@"; fi' HEAD
引号中替换真实信息时不用加<>括号
Old Name就是当时的userName
剩下的就是想要替换的信息
这样在本地就能够修改commit 信息了,然后 git push origin targetBranch -f 推上去就可以了。
另外附加一个修改back up的方法
git update-ref -d refs/original/refs/heads/master