現(xiàn)在互聯(lián)網(wǎng)上有眾多git源代碼托管服務(wù)提供商,比較著名的github
, aliyun
, coding
, oschina
等; 以及公司對代碼的安全策略膏斤,禁止代碼存放在公司服務(wù)器上; 或者參與開源項目, 貢獻(xiàn)自己的一份力量钱慢。每個人難免會維護(hù)多個git賬號以區(qū)分不同的源代碼托管服務(wù)商、個人項目、公司項目抠蚣、開源項目等。
為了方便不同的git賬號之間的切換履澳,利用~/.ssh/config
對不同的域進(jìn)行配置 (更多閱讀請參考 https://my.oschina.net/csensix/blog/184434 ), 為每個域設(shè)置獨立的或共享的ssh key
, 但用戶還需要針對每個git倉庫手動設(shè)置git config user.name
與git config user.email
, 其中滋味只有參與的人才能感同身愛嘶窄。
為避免每次git clone
時配置git賬號信息, 更為了區(qū)分公司郵箱及個人郵件, 編寫了兩個Shell腳本, 輔助git的操作。
git-msg
當(dāng)git的提交歷史記錄中用戶名及郵箱配置有誤時距贷,可利用此腳本進(jìn)行更新柄冲。
git 最后一次的提交可以直接使用命令
git commit --amend
修正。
-
Get
git-msg
from github
wget https://github.com/tianxiaxi/git-msg/raw/master/git-msg -O /usr/bin/git-msg
chmod +x /usr/bin/git-msg
-
Usage
git-msg - Update user name and email from git history message
Usage: git-msg <old email> <user name> <new email>
Required:
<old email> - Old email which will be replaced
<user name> - User name for git commiter and author
<new email> - New email for git commiter and author
Author: wayne@zanran.me
URL: www.dailyshare.cn
Github: git@github.com:tianxiaxi/git-msg.git
git-user
當(dāng)git clone
之后忠蝗,git-user
從~/.ssh/config
中讀取相應(yīng)的配置信息, 并自動設(shè)置user.name
與user.email
现横。
具體步驟如下:
- 從
<git repo>/.git/config
中獲取git倉庫的主機, 如github.com
- 從
~/.ssh/config
中找到對應(yīng)的User
及IdentityFile
- 從
IdentityFile
對應(yīng)的公鑰中解析出對應(yīng)的email
- 根據(jù)獲取的
user
與email
配置git的賬戶信息
-
Get
git-user
from github
wget https://github.com/tianxiaxi/git-msg/raw/master/git-user -O /usr/bin/git-user
chmod +x /usr/bin/git-user
-
Usage
git-user - Auto update git user name and email form ~/.ssh/config
Usage: git-user [-h | --help | ?]
Optional:
-h | --help | ? - Show usage information for git-user
Author: wayne@zanran.me
URL: www.dailyshare.cn
Github: git@github.com:tianxiaxi/git-msg.git