如果修改 git 已提交的使用者郵箱和使用者名稱
新建一個 shell
指令碼 changeGitInfo.sh
#!/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" = "這裡寫你原來的郵箱" ] then cn="你想替換成的使用者名稱" cm="你想替換成的郵箱" fi if [ "$GIT_AUTHOR_EMAIL" = "這裡寫你原來的郵箱" ] then an="你想替換成的使用者名稱" am="你想替換成的郵箱" fi export GIT_AUTHOR_NAME="$an" export GIT_AUTHOR_EMAIL="$am" export GIT_COMMITTER_NAME="$cn" export GIT_COMMITTER_EMAIL="$cm" '
在 git
倉庫(專案)下執行一下,該指令碼即可。
如果避免上面的問題?
分目錄配置 git 使用者資訊
git
可以設定全域性的使用者資訊,然後可以再單獨為每個倉庫設定使用者資訊。如果忘記了給專案重置使用者資訊,可能就會發生上面的問題 — 提交時的郵箱和使用者名稱錯了。:sweat:
如果你喜歡用不同的目錄區分個人和公司的專案,可以使用下面的方法配置自己的 git
使用者資訊。:grinning:
比如,你把公司的專案都放在了 Company
目錄下,個人的專案都放在了 Personal
目錄下下面。
那你可以這麼做:
在 Company
下新建一個 .gitconfig_include
檔案,配置你想在該目錄下給所有 git
倉庫設定的使用者資訊。
[user] name = 使用者名稱 email = 郵箱
然後在 ~/.gitconfig
內新增
[includeIf "gitdir:~/Company/"] path = ~/Company/.gitconfig_include
:warning: 複製提醒。 Company
要替換成你自己的目錄
這樣,之後 Company
目錄下的 git
倉庫都會使用對應的 git
使用者資訊。:muscle:
這是 git 的一個用法,感興趣的同學可以看這裡 ofollow,noindex">conditional includes