ubuntu之 一臺機器如何配置多個git賬號

YFC_chen發表於2020-12-01

ubuntu之 一臺機器如何配置多個git賬號

【背景】

作為一個程式設計師,一定會有一個私人git(gitee),用來存放一些自己的經驗積累,而在工作的時候也必然會有自己的工作git。
那麼,如果在一臺機器上把兩個賬號都配置上呢?

一、首先獲取工作ssh-key

chen@DESKTOP-35RFC6V:~$ cd ~/.ssh/
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-keygen -t rsa -C "aaa@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chen/.ssh/id_rsa):

之後,一路回車到底

chen@DESKTOP-35RFC6V:~/.ssh$ ls
config  id_rsa  id_rsa.pub

將id_rsa.pub(公鑰)的內容填到對應賬號setting下的SSH keys中。

二、接下來獲取私人ssh-key

chen@DESKTOP-35RFC6V:~$ cd ~/.ssh/
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-keygen -t rsa -C "bbb@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/chen/.ssh/id_rsa):id_rsa_own

這次可要看清楚要輸入儲存的key的名字了,id_rsa_own,當然這個名字是自己起的。只要別叫id_rsa就好。

chen@DESKTOP-35RFC6V:~/.ssh$ ls
config  id_rsa  id_rsa.pub  id_rsa_own  id_rsa_own.pub

同樣,將id_rsa_own.pub(公鑰)的內容填到對應賬號setting下的SSH keys中。

然後還有一步操作,將私鑰交給agent管理,因為預設只讀取id_rsa,為了讓SSH識別新的私鑰,需將其新增到SSH agent中:

chen@DESKTOP-35RFC6V:~/.ssh$ ssh-add ~/.ssh/id_rsa_own

如果出現Could not open a connection to your authentication agent的錯誤,就試著用以下命令:

chen@DESKTOP-35RFC6V:~/.ssh$ ssh-agent bash
chen@DESKTOP-35RFC6V:~/.ssh$ ssh-add ~/.ssh/id_rsa_own

三、配置.ssh/config

chen@DESKTOP-35RFC6V:~/.ssh$ vi config

沒有config檔案的話,自己建立一個

chen@DESKTOP-35RFC6V:~/.ssh$ cat config
Host gitwork
    HostName  github.com
    User git
    IdentityFile /home/chen/.ssh/id_rsa
Host gitown
    HostName gitee.com
    User git
    IdentityFile /home/chen/.ssh/id_rsa_own

這裡要注意了:不要硬複製,這其中每一項是有其涵義的。

比如我的私人git clone的ssh是git@gitee.com:chen/test_own.git
那麼我對應到上面config中的配置就是

Host gitown
HostName gitee.com
User git
IdentityFile /home/chen/.ssh/id_rsa_own

當然gitown這個名字是隨意取得。當我需要git clone得時候這樣執行就好了。

chen@DESKTOP-35RFC6V:~/own$ git clone gitown:chen/test_own.git
chen@DESKTOP-35RFC6V:~/own$ ls
test_own

同理,另一個git也都配置了。

四、配置gitconfig

在git中,我們使用git config 命令用來配置git的配置檔案,git配置級別主要有以下3類:
1、倉庫級別 local 【優先順序最高】
2、使用者級別 global【優先順序次之】
3、系統級別 system【優先順序最低】
所以,按需配置。
比如我的私人庫暫時只有一個,那麼就不需要配置使用者級別,只需要配置倉庫級別就完全足夠了。

chen@DESKTOP-35RFC6V:~/own/test_own$git config --local user.email "aaa@163.com"
chen@DESKTOP-35RFC6V:~/own/test_own$git config --local user.name "chen"

而我工作的程式碼庫就比較多了,就需要配置使用者級別的

chen@DESKTOP-35RFC6V:~$git config --global user.email "workchen@xxx.com"
chen@DESKTOP-35RFC6V:~$git config --global user.name "workchen"

全部完畢。

參考連結:
https://www.cnblogs.com/fireporsche/p/9359130.html
https://blog.csdn.net/hd243608836/article/details/109198988

相關文章