如何配置多個git賬號/多個遠程倉庫
配置多個遠程倉庫
背景:公司搭建了GitLab,配置本地git後是可以正常提交的。這時候你要修改你GitHub上的某個項目,那怎麼能跟你的GitHub項目建立連接呢?
Ps:根據記憶整理,如遇到agent報錯,先走Git多用戶密碼管理,然後再回來繼續
- 首先在你的用戶目錄下找到.ssh文件夾,創建config文件
Host 10.0.0.4HostName 10.0.0.4User gitPort 22IdentityFile ~/.ssh/id_rsaHost github.comHostName github.comUser gitPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa_github
IdentityFile 密鑰的路徑,可以自己命名,規則是id_rsa_***
PubkeyAuthentication 密碼驗證
這樣應該就很明白了,根據host去讀取你的認證(密鑰)文件;
- 然後生成GitHub的密鑰
ssh-keygen -t rsa -C wsj***@aliyun.com -f id_rsa_github
這裡的id_rsa_github是你在config里寫的密鑰文件路徑
然後把你生成的 id_rsa_github.pub 公鑰複製到GitHub ssh里就好了
接下來你就會了
git clone your addresscd your addressgit add .git commit -m 初始化git push -u origin master
一切都是那麼順利
Git多用戶密碼管理
如果你想每次提交代碼都輸入密碼,return;否則
在你的用戶文件夾新建.profile(即.ssh上一級文件夾);
如果您使用的是與GitHub Desktop一起安裝的Git Shell,則無需執行這些步驟。 GitHub Desktop會自動為您啟動ssh-agent。
window不能建.開頭的文件所以用命令吧
touch .profile
然後粘貼這一段
env=~/.ssh/agent.envagent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }agent_start () { (umask 077; ssh-agent >| "$env") . "$env" >| /dev/null ; }agent_load_env# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not runningagent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then agent_start ssh-add ~/.ssh/id_rsa ssh-add ~/.ssh/id_rsa_githubelif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then ssh-add ~/.ssh/id_rsa ssh-add ~/.ssh/id_rsa_githubfiunset env
以上這段代碼摘自Github官方,更詳細的去官方看:
Working with SSH key passphrases記得修改你ssh的文件名
推薦閱讀:
※如何回滾一次錯誤的合併?
※微軟豪擲75億美元迎娶冤家Github!空氣幣自此無處遁形?
※git 1
※git安裝及使用-快速教程
※log日誌