1. 程式人生 > >mac下gitLab、sourceTree使用遇到的問題小記

mac下gitLab、sourceTree使用遇到的問題小記

同事離職後,賬戶被銷燬,在切換電腦使用時,賬號切換過程中,遇到點問題,先記錄一下。

公司開發工具用的gitlab和sourcetree,其中sourcetree還需要Atlassian (需要翻牆,然後才可以使用)。

當我在sourcetrees上切換賬號去sourcetree 偏好設定  通用裡 更改使用者,當改成自己的後拉去提交遠端倉庫出現問題:報錯賬號被鎖或遠端倉庫不存在,原因是gitlab 和 sourcetree之間需要ssh key 關聯使用者,本地的id_rsa.pub  ssh 金鑰並不是我的賬號的。所以需要更改。

首先,可以通過在終端下執行cat ~/.ssh/id_rsa.pub

 此命令檢查是否已有一個SSH金鑰。

如果看到以ssh-rsa開頭的長字串,則說明已經您的電腦已有SSH金鑰,直接複製使用。

如果沒有,則需要生成新的SSH,終端執行 ssh-keygen -t rsa -C"GitLab登入郵箱名"  

注意:此命令將提示您輸入儲存金鑰對和密碼的位置和檔名。當提示輸入位置和檔名時,只需按enter鍵即可使用預設值。如果使用其他名稱,則不會自動使用該鍵。預設即可。會出現The key fingerprint is:SHAxxxxxxxx 郵箱名稱 The key's randomart image is:xxxxx 

沒有出錯的情況下就生成了SSH,然後重新執行 cat ~/.ssh/id_rsa.pub

,即可得到SSH金鑰。

輸入ssh-keygen -t rsa -C "[email protected]"’,這個地方輸入的是你註冊gitlab所使用的郵箱。按回車,之後還需要輸入密碼之類的東西,可以選擇不輸入直接回車。

這裡寫圖片描述

上圖中的id_rsa.pub檔案用記事本之類的文字編輯器開啟,然後將其中內容全部複製。

登入GitLab的個人賬戶,找到SSH Keys,並將複製的內容貼上到Key下面的文字域中,然後點選Add Key。 

接下來就能進行提交、推送、拉取等操作了

這裡寫圖片描述

在SourceTree中配置與GitLab公鑰對應的公鑰。點選工具->選項: 
這裡寫圖片描述

到這兒為止,SourceTree配置SSH就完成了。

 這樣便可以直接拉取,提交,遠端倉庫的程式碼了。

在這個過程中,剛開始不知道原因所在,看網上的一些解決方法用命令把本地的.git檔案都給刪了,結果本地倉庫玩蛋。

接下來便需要解決sourcetree將已經存在的的本地資料夾和遠端倉庫關聯。

按照這個思路,sourcetree 新建中新增已經存在的本地倉庫,然後和 點選右上角的設定,設定遠端倉庫的地址和倉庫名字和遠端倉庫連線。結果又出問題了git fatal: refusing to merge unrelated histories。

最後通過開啟sourcetree上的命令,git pull origin master --allow-unrelated-histories,拉取,解決完衝突之後,再提交。希望你們的衝突不要太多。如果問題太多的話,就從頭開始,在新的檔案下重新來過,不過本地的程式碼都會丟掉的。

  1. 新建遠端倉庫,得到遠端地址
  2. create新建一個本地倉庫,我把名字取的和遠端倉庫一樣,不選擇在賬戶中建立倉庫
  3. 點選右上角的設定,設定遠端倉庫的地址和倉庫名字
  4. 點選拉取 (拉取前可能該專案會有一個初始化commit,所以,點左側分值,選擇相應分支(比如master),找到初始化提交,右鍵選擇將master分支重置到這次提交)
  5. 本地提交