最近遇到一個比較難纏的問題是git push不能提交到遠程,總結了下各種可能,列到下邊來。
1 檢查SSH祕鑰
首先要檢查的就是自己是否有ssh的公鑰了,如果沒有公鑰綁定到gitlab倉庫,是沒辦法的。
-
首先配置git的郵箱和用戶名,郵箱選擇公司郵箱、用戶名選擇域賬號,例如:配置名稱+郵箱
git config --global user.name "tianmaolin" git config --global user.email "[email protected]"
-
然後進行公鑰配置, ssh 生成與驗證
$ ssh-keygen -t rsa -C "[email protected]"
輸入完畢後,程序同時要求輸入一個密語字符串(passphrase),空表示沒有密語。接着會讓輸入2次口令(password),空表示沒有口令。3次回車即可完成當前步驟
第2步的作用是用來生成Git的全局公鑰,生成公鑰後即可在如下地址獲取到全局公鑰:去自己的個人目錄下c盤>用戶>自己的用戶名>.ssh應該能看到名爲id_rsa.pub的文件,用notpad打開,把裏面的全部內容拷貝出來。接下來找到SSH設置,將拷貝到的內容粘貼進去:
2 檢查gitlab項目權限
主要驗證兩點,首先是是否項目開發,其次是是否有該項目權限:
首先確認項目是否有權限,是否爲Private,要注意對應的權限
其次確認自己是否有該項目的權限,如果是Master和Owner就沒有問題,如果是其它角色想往master分支上推,顯然不對。
3 檢查windows憑證
有的時候更新了密碼或者賬號,這個時候windows的憑證如果不更新,也是拉取不到的,在控制面板—用戶賬戶—憑據管理器—Windows憑據—普通憑據刪除掉gitlab的憑據,然後重新添加或者在git bash提醒的時候再次添加。
4 手動設置該代碼關聯的遠程地址
在項目路徑下執行該命令:git remote set-url origin xxxxxxxxxxxxx.git
,執行完成之後應該就具備了該項目的訪問權限。相當於設置本地代碼關聯的遠程地址
解決方案持續更新中,如果大家遇到類似的問題也可以留言彙集。