Git配置SSH及通過IDEA連線GitLab方法總結
Git配置SSH及通過IDEA連線GitLab方法總結
寫在前面:
還記得大學畢業來到公司那一陣子,老大叫我配置Git環境,並且通過SSH連線GitLab來上傳和拉取程式碼。當時我整了一個下午還是沒能配置好。一個方面是自己能力實在是太差了,另一個方面是網上有些方法都比較亂、不夠詳細。前幾天我的Git工具出現了莫名其妙的錯誤(能夠拉取新程式碼、當時上傳程式碼卻失敗了),於是我重新配置了SSH。後面決定寫一篇部落格來記錄一下。
開始配置
1、下載並且安裝git
2、第一次配置SSH
(1)開啟Git Bash,若是首次安裝使用git,先配置使用者名稱稱和郵箱
git config --global user.name "姓名"
git config --global user.email "郵箱地址"
- 1
- 2
如果不是首次使用git,那麼可以先檢視自己的使用者名稱以及郵箱:
git config user.name
git config user.email
- 1
- 2
(2)生成金鑰
ssh-keygen -t rsa -C "你的郵箱地址"
- 1
預設路徑及生成的檔案如下:
(3)用筆記本開啟id_rsa.pub,並且複製裡面的金鑰
(4)開啟GitLab,點選右上角的那個人物頭像–點選Settings,出現下面的頁面,點選SSH Keys,並且把(3)中複製過來的金鑰貼上
(5)開啟IDEA,並且下載IDEA外掛GitLab Projects(不會安裝IDEA外掛的自動百度),安裝完成後如圖:
(6)在IDEA中新增SSH。首先點選Version Control—>GitLab–>Add New GitLab Server(具體可以參照上面和下圖)
GitLab中Token獲取的方法
現在SSH的配置、IDEA配置GitLab已經配置成功了。
(7)再補充一下,程式碼的上傳和拉取吧
上傳:
滑鼠右擊專案–>Get–>add–>Commit Directory—>輸入Commit Message–>Commit and Push—>Push–>上傳成功
拉取新程式碼:
直接通過這個圖示拉取程式碼
最後補充一下最近發現的問題
問題產生的導火線
(1)問題分析
首先,我想到的是應該是SSH配置失效了,後面直接上GitLab上面配置SSH以後,發現好像SSH預設的失效時間是很長的,幾乎都是10年以上,所以這個想法的可能性太低了;
其次,因為太懶了,懶得重新配置SSH(雖然配置很簡單)。我這次想到的是可能是GitLab Project這個外掛出現了問題。後面就重新安裝外掛,問題還是沒有解決。
然後,我嘗試著再次從GitLab上面拉取程式碼(git clone 一下),結果發現還是沒能解決問題。這一步也是我最致命的一步(在腦子裡面反應就是重新git clone程式碼是不能解決問題的!!!)
再然後,我請求我老大幫忙,我老大說,你直接用命令列提交看看,如果還是不行,說明是你的環境有問題。可是我對Git命令不熟悉啊,後面通過百度終於發現了有用的命令(網上命令太多,不敢輕易使用,萬一出現問題,那可麻煩了):
先看看狀態
git status
- 1
提交
git push origin dev_2.9.0
- 1
結果發現了我的問題:正如導火線上面所說的,我輸入的資訊不對,所以造成了這個問題。
(2)解決問題
1)重置使用者名稱和郵箱
2)重新生成SSH
3)IDEA配置GitLab
再次出現坑
我配置的郵箱是根據GitLab上面的郵箱(字尾名是ldap)進行配置的,然而我們公司真正使用的是.com或者.cn的字尾的郵箱。我又在這個坑裡面徘徊了一段時間。後來聽到我同事說我們公司說,我才反應過來。後面又重新配置了一次環境。本來以為這個能成功。結果又發現了問題。
再次出現坑
反覆檢查了環境配置,發現環境是對的呀,拉取程式碼也是能夠拉取的。當時為啥上傳的時候上傳不了呢???突然感覺剛剛做的事情白白做了!!!絕望啊。我在之前拉取的專案下面反覆重新整理程式碼,還是不行。我沒有重新git clone的原因是,在此之前我已經認為git clone專案下來沒用的了!看上面的問題分析第三點,如圖:
解決問題
重新從GitLab上面 git clone專案下來,天啊。然後激動的重新嘗試提交程式碼,終於提交成功了;
問題分析:Token問題
假設之前的使用者名稱(也就是IDEA還沒彈框叫我重新輸入使用者名稱以及郵箱的時候)是“zhangsan",在彈出框彈出後我輸入的使用者名稱是xiaosan。因為如果不重新git clone 程式碼的話,這個專案程式碼還是之前的那個使用者名稱所拉取的程式碼,能夠拉取新程式碼的原因是IDEA裡面還存在的之前的token。再提交程式碼失敗,因為IDEA裡面存著的使用者名稱和郵箱與我們通過Git設定的使用者名稱和郵箱不匹配。
新姿勢:
(1)通過Git命令修改使用者名稱和郵箱
(2)新配置SSH
(3)重新git clone程式碼