git修改提交作者和郵箱


作用一名程序員,我們會經常混跡與不同的代碼倉庫,時常不同倉庫會有作者信息驗證。比如公司內建的gitlab一般會要求統一使用公司內部的域賬號簽名;github要求使用github賬號簽名等。因此,很容易犯在不同庫中提交代碼發現默認配置的author信息沒有變更,結果push被拒絕。

下面介紹幾種常用的解決方式,當然最終還是需要養成切換代碼庫檢查author信息的習慣,主動配置

// 設置全局 git config --global user.name "Author Name" git config --global user.email "Author Email" // 或者設置本地項目庫配置 git config user.name "Author Name" git config user.email "Author Email"

解決方法一

如果只需要最近一次提交,那么很簡單直接使用git commit –amend就可以搞定

git commit --amend --author="NewAuthor <NewEmail@address.com>"

解決方法二

如果是多個修改,那么就需要使用到git filter-branch這個工具來做批量修改 
為了方便大家使用,封裝了一個簡單的shell腳本,直接修改[XXX]中的變量為對應的值即可

#!/bin/sh git filter-branch --env-filter ' an="$GIT_AUTHOR_NAME" am="$GIT_AUTHOR_EMAIL" cn="$GIT_COMMITTER_NAME" cm="$GIT_COMMITTER_EMAIL" if [ "$GIT_COMMITTER_EMAIL" = "[Your Old Email]" ] then cn="[Your New Author Name]" cm="[Your New Email]" fi if [ "$GIT_AUTHOR_EMAIL" = "[Your Old Email]" ] then an="[Your New Author Name]" am="[Your New Email]" fi export GIT_AUTHOR_NAME="$an" export GIT_AUTHOR_EMAIL="$am" export GIT_COMMITTER_NAME="$cn" export GIT_COMMITTER_EMAIL="$cm" '


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM