git批量處理git author和commit
阿新 • • 發佈:2021-10-02
最近在做自己專案的時候,由於使用了git全域性配置的使用者名稱和郵箱,導致自己私人的倉庫裡面的所有提交記錄都是用的公司的郵箱和使用者名稱,於是想批量替換一下。
可以在需要修改的專案的根目錄下使用如下命令,進行批量替換:
git filter-branch -f --env-filter \
"GIT_AUTHOR_NAME='freephp'; GIT_AUTHOR_EMAIL='[email protected]';" HEAD
然後再強制推送給遠端:
git push origin -f branch_name
之後還要對這個專案進行本地化配置使用者名稱和郵箱,命令如下:
git config user.username "freephp" git config user.email "[email protected]"
從此之後再進行提交,提交資訊中的使用者名稱和郵箱就是新設定的了。
再使用git log命令,可以看到新提交的提交記錄如下:
commit f237a55237ecceb7f837bae0bedde2b927451a07
Author: freephp
<[email protected]>
Date: Wed Sep 29 19:06:19 2021 +0800
改動部分邏輯和修復更新bug
總結一下,如果存在多個不同組織的專案(公司、個人、開源),需要在每個所屬組織的專案中單獨設定本地設定,避免使用全域性配置導致資訊混亂。當然批量處理也算是一個不錯的補救方法,相關命令非常實用。