在一臺電腦上,公司的gitlab賬號如何與個人的github賬號共存

在處理這個問題之前,查詢了一些資料,當(dāng)時只是單純的認(rèn)為幾句代碼就搞定了,不過,在實踐的過程中碰了一鼻子灰,經(jīng)過努力,配置成功之后,總結(jié)如下實現(xiàn)步驟(我的電腦是先配置的公司gitlab,后配置的個人github).

1: 剛開始的時候,我是根據(jù)在Mac下創(chuàng)建github并上傳本地代碼的思路去操作的,具體代碼如下:
//初始化本地倉庫
git init 
//將代碼放到提交區(qū)
git add . 
//提交到要本地倉庫 
git commit -am “first commit”
//關(guān)聯(lián)遠(yuǎn)程倉庫并建了一個名叫:originMine的別名
git remote add originMine git@github.com:FuDong/test.git  

如果只是一臺電腦只存在一個github賬戶,上面的簡單幾步是沒有問題的,不過一臺電腦兩個github賬戶共存,在git push的時候,就會犯難了,到底是傳到哪個賬戶???

2: 重新設(shè)置一個公司gitlab的賬戶信息(這一步參考用的,可以不用重新配置)
git config --global user.name "gitlab用戶名"
git config --global user.email "gitlab郵箱"
3: 每個賬戶, 我都是通過關(guān)聯(lián)ssh key來操作的, 公司賬戶之前配置過了,具體方法如下.
ssh-keygen -t rsa -C "公司的gitlab賬戶"

但是為了區(qū)分兩個賬戶的ssh key,不覆蓋之前的id_rsa,所以給個人賬戶的ssh key 重新起了個名字

ssh-keygen -t rsa -C "個人的github郵箱" -f ~/.ssh/github_rsa
//進(jìn)入ssh文件目錄
StafftekiiMac:~ Staff$ cd ~/.ssh
//配置的ssh key文件
StafftekiiMac:.ssh Staff$ ls
config      github_rsa.pub  id_rsa.pub
github_rsa  id_rsa      known_hosts
//拷貝密鑰
StafftekiiMac:.ssh Staff$ cat github_rsa.pub
ssh-rsa AAAT0sty7U9uueyjumof2HJYZp7NeBCz2TBQ4z4NM5kE9XB 1341499999@qq.com

拿到密鑰ssh key之后,拷貝到自己的github賬戶進(jìn)行配置


ssh_key.png
4: 在ssh文件目錄下,會自動生成一個config目錄(.ssh/config),進(jìn)行配置:
可以通過vi .ssh/config的方式進(jìn)行編輯,也可以直接右鍵進(jìn)入文本編輯

Host gitlab
    HostName github.lab //公司的代碼倉庫服務(wù)器地址
    User 用戶名稱
    IdentityFile ~/.ssh/id_rsa
Host github.com //個人的代碼倉庫服務(wù)器地址
    HostName github.com
    User 用戶名稱
    IdentityFile ~/.ssh/github_rsa

如果不知道倉庫服務(wù)器地址,可參考下圖紅框部分


服務(wù)器地址.png
5: 配置到這一步的時候,可以測試一下ssh 是否連通了
StafftekiiMac:~ Staff$ ssh -T git@github.lab
Welcome to GitLab, 用戶名!
StafftekiiMac:~ Staff$ ssh -T git@github.com
Hi 用戶名! You've successfully authenticated, but GitHub does not provide shell access.
6: 進(jìn)一步的配置步驟
StafftekiiMac:test Staff$ git init
StafftekiiMac:test Staff$ git commit -am 'first commit'
StafftekiiMac:test Staff$ git status
StafftekiiMac:test Staff$ git remote add origin git@github.com:用戶名/test.git
StafftekiiMac:test Staff$ git push -u origin master
到這一步的時候,出現(xiàn)如下問題
! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:用戶名/test.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解決方法:
1: 進(jìn)行push前先將遠(yuǎn)程倉庫pull到本地倉庫
$ git pull origin master    //git pull --rebase origin master
$ git push -u origin master

2: 強(qiáng)制push本地倉庫到遠(yuǎn)程 (這種情況不會進(jìn)行merge, 強(qiáng)制push后遠(yuǎn)程文件可能會丟失 不建議使用此方法)
$ git push -u origin master -f

3: 避開解決沖突, 將本地文件暫時提交到遠(yuǎn)程新建的分支中
$ git branch [name]
# 創(chuàng)建完branch后, 再進(jìn)行push
$ git push -u origin [name]  

通過上面的步驟,當(dāng)我們再次刷新github界面的時候,本地代碼就上傳成功了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容