Windows下TortoiseGit over Putty or Openssh提交項目到GitLab

來源:互聯網
上載者:User
Gitlab預設的配置推薦使用shell命令列與server端進行互動,作為搞SCM的表示無壓力,但是作為開發人員還是比較適應windows的GUI圖形管理,方便他們將注意力集中到代碼編寫上,所以今天剛好接著昨天給大家介紹一下使用windows下的git client工具實現將本地代碼提交到遠程伺服器.
解決方案:
環境部署
作業系統                 Windows7 x64 Sp1
TortoiseGit             TortoiseGit-1.8.11.0-64bit.msi
Git                          Git-1.9.4-preview20140815.exe
Putty                      PuTTY 0.63
OpenSSH                owned by Git 
下載地址:  http://yunpan.cn/QaaLGsd23BsWL (訪問密碼 96d7)
注: 此處下載地址中的安裝包都為64位版本,32位請另行下載.
一.部署前的準備工作
安裝TortoiseGit,Git,Putty,預設下一步安裝即可,其中Git為Git client環境安裝包,確保windows包含git環境.
二.配置PuTTY authentication agent
在安裝TortoiseGit後,可以選擇使用OpenSSH用戶端還是使用Putty用戶端,如果使用的是預設的Putty用戶端,由於TortoiseGit GUI串連不支援server端自訂連接埠配置,若GitLab使用的SSH連接埠為自訂連接埠,則需要使用PuTTY的authentication agent去做一個本地的連接埠轉寄.
1.首先使用TortoiseGit內建的Puttygen建立本地的公/私密金鑰對
2.點擊Generate按鈕,在視窗空白處按照提示晃動滑鼠,產生公/私密金鑰對,並儲存到本地
其中testkey為公開金鑰,testkey.ppk為私密金鑰
3.將視窗產生的Public key粘貼到GitLab網站具體使用帳號的SSh Keys內即完成公開金鑰上傳.
 
4.使用PuTTY串連gitlab伺服器,open之前需選擇之前本地產生的私密金鑰
這裡服務端domain為git.example.com
git為Server端SSH For GitLab賬戶
SSH連接埠為自訂的2222
 
 
5.串連成功會在右下角工作列出現任務表徵圖
 
 
三.配置TortoiseGit
1.從windows開始菜單選擇TortoiseGit-Setting工具,在對話方塊裡選擇Git項,填寫相關info
注: 這裡的User Info中Name建議與你的Gitlab的賬戶名保持一致,且該賬戶必須有該project的相關git操作許可權,如果沒有可能會造成GIT相關操作報permisson deny錯誤.當然如果你Gitlab本身剛搭建好,只有系統初始的admin賬戶,未添加其他賬戶,則這個許可權問題會被系統忽略.
當然另外一種可能是:
大多數國內文檔這裡未提及這點可能在於國人的windows系統99.9%都是Ghost版本,初始都為admin最高許可權,所以這邊許可權問題直接忽略,但如果你的windows系統是家庭版,或者未使用系統最高許可權登陸,則會出現上述報錯情況,這個問題也是在我一個朋友那邊發現的,他的機子是Surface的Win8家庭版,一般都是普通使用者登入,So讓我倒持了大半天,終於發現了問題所在...
如果有git相關管理經驗的朋友,這裡可以解釋一下.
2.在D盤建立一個目錄,例如"D:Git",並進入目錄右鍵目錄空白處選擇"Git Create repository here...",彈出對話方塊點確認,這樣即建立了一個本地Git倉庫.
 
3.在該倉庫目錄下建立一個測試專案文字檔,右鍵目錄空白處,選擇Git Commit -> "master" ...,在彈出對話方塊裡輸入提示注釋,選擇要加入的版本控制檔案,確定即可提交.

4.現在只是在本地實現使用Git管理項目,在此介面若顯示Success則本地提交成功,接下來點擊Push..,把我們的改動遞交到Git伺服器上.
5.此時會彈出Push對話方塊,在Ref - Remote欄裡設定當前分支名為master,然後點擊Destination - Remote欄的Manage按鈕.
6.在彈出的設定對話方塊中按照如圖所示,填寫伺服器Remote名稱,URL(git@git.yanwenbo.cn:root/tesproject.git),之前儲存的本地私密金鑰testkey.ppk,點擊Add New/Save按鈕儲存這一設定,然後點擊確定退出返回之前的對話方塊.
 
7.最終確認提交
 
8.push成功
 
9. Giblab後台查看提交結果.
 
大功告成...
 
 
後記...
之前介紹的是利用TortoiseGit配合putty實現SSH自訂連接埠的串連GitLab
但是在給一個朋友配的過程中發現他的SURFACE WIN8系統死活無法PUSH成功,但我的win7同樣方法就沒問題,索性就用OPENSSH的命令列方法實現.
具體過程這裡較之前的稍作更改
1. 利用git bash建立秘鑰,方法和linux命令列建立秘鑰命令列格式基本一致
a.用戶端產生秘鑰
# cd ~
# ssh-keygen -t rsa
一路斷行符號後產生公開金鑰和秘鑰對
# cat ~/.ssh/id_rsa.pub 
—————————————————————————————————————————————————
將這裡產生的秘鑰全部複製並粘貼到gitlab web SSH Keys後台儲存即可
—————————————————————————————————————————————————
上傳後如圖:
b.測試SSH串連
# ssh -p22 git@git.example.com
若報如下錯誤:
——————————————————————————————————————
PTY allocation request failed on channel 1
/usr/bin/env: ruby: No such file or directory
Connection to git.example.com closed.
——————————————————————————————————————
說明服務端ruby環境變數未在此目錄/usr/bin/ruby
在伺服器端加此軟鏈即可:
# ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby
注:若伺服器端SSH自訂連接埠,則需要在用戶端~/.ssh/config下添加連接埠配置
假定自訂SSH連接埠為2222
# echo “Port 2222” >> ~/.ssh/config
c.重新串連
# ssh -p22 git@git.example.com
——————————————————————————————————————
PTY allocation request failed on channel 1
Welcome to GitLab, Anonymous!
Connection to git.example.com closed.
——————————————————————————————————————
2.將TortoiseGit預設的SSH用戶端TortoiseGitPlink(Putty)更改為openssh,具體路徑與你的實際安裝路徑為準.
3.更改TortoiseGit的秘鑰import路徑為Git bash命令列產生的秘鑰路徑
將之前到此處的配置中如下PuttyGen產生的秘鑰路徑更改成你的openssh產生的秘鑰 
筆者是windows管理員賬戶登入
所以路徑為 C:UsersAdministrator.sshid_rsa 
4.其他配置保持不變,按照上文操作即可完成openssh認證遠程Git over SSH for Gitlab.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.