修改已经提交到远端的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

 

posted @ 2016-11-09 10:43  庶常  阅读(2122)  评论(0编辑  收藏  举报