GitLab在windows用户端的安装使用详细教程.docx
代码管理工具GitLab可视化界面在windows安装教程-作者:Ablel.Windows 下 TortoiseGit over Putty or Openssh 提交项目到 GitLab (可 视化工具):(安装教程按照1进行)具体安装教程:Windows 下 TortoiseGit over Putty or Openssh 提交项目到 GitLabGitlab默认的配置推荐使用shell命令行与server端进行交互,作为搞SCM的表示无压力,但是 作为开发人员还是比较适应windows的GUI图形管理,方便他们将注意力集中到代码编写上,所 以今天刚好接着昨天给大家介绍一下使用windows下的git client工具实现将本地代码提交到 远程服务器.解决方案:环境部署操作系统Windows? x64 Sp1TortoiseGitTortoiseGit-1.8.11.0-64bit.msiGitGit-1.94preview20140815.exePuttyPuTTY 0.63OpenSSHowned by Git下载地址: (访问密码 96d7)注:此处下载地址中的安装包都为64位版本,32位请另行下载.一. 部署前的准备工作安装TortoiseGit,Git,Putty,默认下一步安装即可,其中Git为Git client环境安装包,确保w indows包含git环境.二. 配置 PuTTY authentication agent在安装TortoiseGit后,可以选择使用OpenSSH客户端还是使用Putty客户端,如果使用的 是默认的Putty客户端,由于TortoiseGit GUI连接不支持server端自定义端口配置,若GitLab 使用的SSH端口为自定义端口,则需要使用PuTTY的authentication agent去做一个本地的端 口转发.1.首先使用TortoiseGit自带的Puttygen创建本地的公/私钥对TortciiseGit斜 Help眇Puny卵nn/ Senirrgs (64 bit)s' T oitoeGitB>a«!. I" TortorsetDiff劣 Tort&iEelVtege_ Websrle置 PuTTY KLey GeneratorFile Key Conversrons HepKeyMo key.ActionsGenerate a pubUc/prfvate key 仲Gonrralebddd &ri 眦砒讷9 pfhrtrfi key fifeLoadSave the generated keySave pidAc kcS&yc 时rafe keyParametersType of keyto genefe:(: SSB-1 (RSA)o SSH 2 RSA5SH-2DSANumber cf bits in a generated key:1fl242.点击Generate按钮,在窗口空白处按照提示晃动鼠标,生成公/私钥对,并保存到本地 其中testkey为公钥,testkey.ppk为私钥就 PuTTY Key GentratorFile Key Ccnversrons HelpKeyPublic key for pasting iria OpenSSH aJhar zeci_keys fife:sh-raa IAAAB3M珥CgEAAM理AAAJ 曰昉上HEXzSKfTilVthSS如阳BOBCWfu :Ml HJ4fTiLIW3yAfiFhf25lh>ZI35Klttft3Otol!QDS3PJGnMfBvRHRTJ bQd E 4EN N 平 qZJWS4为抵心心 fHGmSXT3q 部印 F(HhFgbWD= | key-2Qr3Qlt4i -Key fingerpnnt; ssh-rw 1Q24 fd:25 5c 30 3? et .87b2'3$:deid42b7h5i1Kflty pgrnfnSHt;fm key-JOll0114IKsy p*ephrwConrfim panphrag«Actions&ne部 a publlc/pnYti hey par.GentfteLoad an foisting private key file' LoadSave the generated keySa网 pipk; *呀Save private keyParameteraTVpe of ke/ to generat己< 'SSH-1 (RSA)<J SSH-2RSA二 55H-2DSA丸小IKE2 KBNumber of bits in g enerated key;1 #名称修改日期类型|_ testkey2O14/B/SO 11:25文件2 testkey.ppk2014/S/30 11:25叩虹文件3.将窗口生成的Public key粘贴到GitLab站点具体使用账号的SSh Keys内即完成公钥 上传.Profile倔AcEBirtPzsErtnnd川出币匚slimsSSH K«yx 3QasignAdd an SSH KeyPaite yaw pi#>c kny b?«e. Rm4 rnc*r aboiA hm b?- gwera也 a kfy m ihe SSH halp jwgr*vail-r 53AWB3瑚 Z:1&2EMAAa 力 AAA口 EAukDKIJ0Haw25hCcHi3KMHRMmlEC;yJiP HMiM*JHZflE3UV503BDi/r," . nJSurGPAkh-tAhxrijxm+kfiGJBOCKYvfl3iKR+2flJF&Xt£tf?H.WdRiEviTEmJlpStiJTLHDmp+0加4隔3柚心由扁d tiijPjaYEiFwEJcDAiJkUufocZ+Cc&X2DliwlEkKWSYin=*7JR3+2MjikLiHUslnAt1UMkEUVarnSkj7O5plAl 沮故牛sLCi 即御412就IQD= raa-km,2OU0B3OArid k¥阪曲INd 旧5SH 翊:GimpsS5H k鞘事折同tj小)雁i效购ini!iHUi b械n ytii匚胡哪:sA Gfli 囹作仲诃 淤乱£&,啊?si Fd lo咨倾i".蚓邮34.使用PuTTY连接gitlab服务器,open之前需选择之前本地生成的私钥 这里服务端 domain 为 ,我们公司的:Host Name : gitgit.guanxi.me. port:422025.连接成功会在右下角任务栏出现任务图标(一般情况下回出现)三.配置 TortoiseGit1.从windows开始菜单选择TortoiseGit-Setting工具,在对话框里选择Git项,填写相关in fo注:这里的User Info中Name建议与你的Gitlab的账户名保持一致,且该账户必须有该 project的相关git操作权限,如果没有可能会造成GIT相关操作报permisson deny错误.当然 如果你Gitlab本身刚搭建好,只有系统初始的admin账户,未添加其他账户,则这个权限问题会被 系统忽略.当然另外一种可能是:大多数国内文档这里未提及这点可能在于国人的windows系统99.9%都是Ghost版本, 初始都为admin最高权限,所以这边权限问题直接忽略,但如果你的windows系统是家庭版,或 者未使用系统最高权限登陆,则会出现上述报错情况,这个问题也是在我一个朋友那边发现的,他 的机子是Surface的Win8家庭版,一般都是普通用户登录,So让我倒持了大半天,终于发现了问 题所在.如果有git相关管理经验的朋友,这里可以解释一下.r.gitconfig - Note.1=1回File Edit View Settings ?J iJ s.电i这个如果不可以编辑,可以通过点击 图中来手动输入,账号名和邮箱1234username = abl eemai1 = ableguanxi . meLn 4 : 4 Col 1 Sei 44 字节'输入后点击确定即可按图示格式输入:Settings - TortoiseGitFile Edit View Settings ?d 3 iflII-? | Ji 电器1 |uiser name =s erniiil -abl e-abl c<?g janixi me*阿卜Lr 1 : 4 Col 1Se 44字节pdiE local . git/conflgidit global . gitconfigEdi t . tgi tcjiLfi gHit glolal KBG config再次进入 就可以看到自己的账号名和邮箱有配置效果:(至此,gitlab客户端本地配置已 经完毕。)|2.在D盘新建一个目录,例如"D:Git",并进入目录右键目录空白处选择"Git Create reposi tory here.",弹出对话框点确认,这样即建立了一个本地Git仓库.Settings - TortoiseGitIinheri t| inheri tiblEguaiai. neEmail:I intieri tAuto CrLE c&nv-irtSafelZrLtAutoCrlfQuo tel'sthGlobal应用如|Zd.i tXDG config'、:、© GlcthfilSys-LorriCoaf i g w 口Bg9 E££ociivfti l.:R CredentialJ - y Hook Scripts蓄 Issue Trsclksr Integrati-© Icon Ov&rlaysIcon Set,有3 Overlay Handlers Network: Email#.% General:Context Menu:Sri Extend Menu Item::-; Dialogs 1Dialogs 2:i - J!? Dialogs 3:"娉 Colors 1:誓 Co lore 2J!曹 Colors 3: JR AJternalive editorj Gitdi t loaal . gi t/1 aon.£il-li t 企-nliaL . git.coxtfig i i syst立辑叩 旄盲I® ftSlVl工»工1就楮政E!®口物目BSljD球方式Q& L |卜计算松,丰杉5隹匚堆北咨=1密包含旬三中留 兰里*彩主S:件况W*里统也1 Grt GUI Her?Grt 日姬h Here-Ctrl+Z共p-Git C4one.Grt Creaw repcsrtDf hwe.TortDiEAGitb-日定心在夫E3.在该仓库目录下创建一个测试项目文本文件,右键目录空白处,选择Git Commit -> "master”.在弹出对话框里输入提示注释,选择要加入的版本控制文件,确定即可提交.Message:Commit to: master'_ Amend Last CamrnitSet autlior dateAdd Signed-off-tySet autiiorChanges made doubl&-did<. on file for 却用:IV Show Unversioned Ries1 Da not autoselect submodulesView Patdi»Check: All Fkine Unversianed Versioned Added Deleted ModiFied FBes EubmodulesPatiiExtension Status-Lines added Lines removedNet Versioned Filmsfsf' 一-_test.tot,&tUnknown1 files selectedP1 files totalL; Whole ProjectMessage only4.现在只是在本地实现使用Git管理项目,在此界面若显示Success则本地提交成功,接下来点击Push.,把我们的改动递交到Git服务器上.更D:Git - Commit - Turtcis-eGitCommit ta: masterI_!dq not autosekct submodules whole Project'M海日ge only5.此时会弹出Push对话框,在Ref - Remote栏里设定当前分支名为master,然后点击D estination - Remote 栏的 Manage 按钮.D:Grt - Push -jit3MR&fIPush all brandiesOptionsForce; May discard;. J knom changes . lunknown changes.:Use Thin Padc fcr glow network connecticns):Indude Taqsf7| Autnload Putty Key.Set upstream/tJB± remote bran±_ Always push to the selected remote archive for this local branch.Always push to the selected remote branch for tfiis local branchReourse submodulemceu-OKCancelHelp6.在弹出的设置对话框中按照如图所示,填写服务器Remote名称,URL(gitgit.yanwenb :root/tesproject.git),之前保存的本地私钥 testkey.ppk,点击 Add New/Save 按钮保存 这一设置,然后点击确定退出返回之前的对话框.Og;t - S&Liingt -Tcrtois&Git砰奔寿 为-fv曹W%Git值京 田消.11 ,应明.芾缺7.最终确认提交,二-D:Git - Push - TortoiseGitRefPush all branchesLoca' mastEr |Remate;. |Destination RemateL gitisb- ManageC. Arbitrary URL:t |OptionsForce: hlav discard:. J known changes : : unkriDwn diangesI Use Thin Pack For slow network connections):Indude Tags7 Autoload Putty Key.Set upstr&am/track remote bran±._: Always push to the select&d remtste archive for ihis local brsndn,Always push to the selected remote branch ftjr tliis local branchReourse submoduleMninca-OKCancelHelp8push成功9. Giblab后台查看提交结果.masteritesiproect/ +NameLast UpdateLast Commit > 193G1bE6e4j - firs; ccmment=tesi.txlj nfpinutes agoB Ghowerieo first commentAll"晔lr*!W H碧期A.3fl*nhprojeci (S 国斗1h F*9-IImNiLwsrhHAqa4£li OWki、心pmpd i' 1c st txt:tcsLtti - I-,:Wh»t « 句£可吓 well。rtfld大功告成.后记.之前介绍的是利用TortoiseGit配合putty实现SSH自定义端口的连接GitLab但是在给一个朋友配的过程中发现他的SURFACE WIN8系统死活无法PUSH成功,但我的 win7同样方法就没问题,索性就用OPENSSH的命令行方法实现.具体过程这里较之前的稍作更改1.利用git bash创建秘钥,方法和linux命令行创建秘钥命令行格式基本一致Git Bssh Git GUIhelp <CQjiini3nd>to Git Cversion 1.9.4-preview20140®15)。.客户端生成秘钥# cd # ssh-keygen -t rsa一路回车后生成公钥和秘钥对# cat /.ssh/id_rsa.pub将这里生成的秘钥全部复制并粘贴到gitlab web SSH Keys后台保存即可上传后如图:b.测试SSH连接# ssh -p22 git若报如下错误:PTY allocation request failed on channel 1 /usr/bin/env: ruby: No such file or directory Connection to closed.说明服务端ruby环境变量未在此目录/usr/bin/ruby在服务器端加此软链即可:# ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby注:若服务器端SSH自定义端口,则需要在客户端/.ssh/config下添加端口配置 假定自定义SSH端口为2222# echo “Port 2222” >> /.ssh/configc.重新连接# ssh -p22 gitPTY allocation request failed on channel 1 Welcome to GitLab, Anonymous! Connection to closed.2.将TortoiseGit默认的SSH客户端TortoiseGitPlink(Putty)更改为openssh,具体路径与你 的实际安装路径为准.ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNq3wAjzGTS/nLzOAStmSbrjRz zLGeyhr+9CJrs3pjuk/Zp8iSggTHFpukwMV2oXcb0cFnFKwlMS97pHzrXlj9fJ35vh0lXhyE8scMDsF2tm2Y6 vklkG5aR6shG+6ne8rohwXIWjtXHG/10ZGNdbmQkoo5VIplq+hPQsJfP/FdpLHHIG69U9+mrX8HCNCiDU691Cjqi65i58NnOgnjrGQWc6RnENWt+FTRz5FQLagTrQHvVAA5azHuXlTP9wZf2gEmLoHDACaj /4TFKXgFt7Wrakgwt6FEZl7/iMen9BAIRdp6j9p4TKIUiIZXpgpklT8LvuFxH5ZgY1xjkMCqGHrv hpHP-PCTortoiseGitHelps- Notepads 胤 Pageant 就 Putty gen膈ktings金 TcrtoiseGitBlarrieLC TortoiseG itIDiff京 TortoiseGitMergeSSHSSH client:E, Vfrogxaiii PilesWi tbinssh. siteBroTfsa.3.更改TortoiseGit的秘钥import路径为Git bash命令行生成的秘钥路径将之前到此处的配置中如下PuttyGen生成的秘钥路径更改成你的openssh生成的秘钥笔者是windows管理员账户登录所以路径为 C:UsersAdministrator.sshid_rsa总 D:git - Setlin-gs - TortcicHjit4.其他配置保持不变,按照上文操作即可完成openssh认证远程Git over SSH for Gitlab-完