最近在折腾git服务器和windows git客户端的部署,网上的教程很多都不完整,没有一个很系统的教程描述如何使用tortoisegit来连接gitosis的教程,并使其正常工作,这里将自己的总结分享一下。
首先是要安装好python,和git这里就不用多说了。另外需要注意的是我前面的一篇博文关于python bin路径的问题。
安装gitosis的方法网上有很多教程,这里讲解的都是正确的,我就不多言了。
首先要在本地创建一个ssh密钥,这里有一个细节必须注意,不能用tortoisegit自带的Putty Key Generator来生成公私密钥,需要执行msysgit里面的msys.bat并在命令行中输入
ssh-keygen.exe -t rsa
然后一路回车,这样就会在
C:\Users\leo\.ssh (“leo”这里根据每个人电脑里面的用户名不同而不同)
下生成一个公钥一个私钥,
再在mysysgit的命令行下输入命令将id_rsa.pub文件传给远程的linux git服务器端。
scp id_rsa.pub git@www.leeon.me:~
server端接收后就可以用gitosis-init命令来初始化gitosis服务了
gitosis-init < id_rsa.pub
这里执行的init操作是在/home/git下执行的,那么会在/home/git下生成几个文件和文件夹:
这些是gitosis管理服务的文件,我们要修改gitosis的配置的时候不能直接修改这里面的文件需要git clone一份到本地修改后在git commit回去。
做法和网上的教程是一致的,这里会git clone一份gitosis的配置文件包含一个文件和一个文件夹。
如果是直接在linux服务器上git clone,那么要注意路径问题:
git clone git@localhost:/home/git/repositories/gitosis-admin.git
也就是说不能写成网上说的:
git clone git@localhost:gitosis-admin.git
这样写会提示:
fatal: 'gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
如果是在本地windows端git clone gitosis的配置文件,那么在需要一点注意
在安装玩msysgit后,安装tortoisegit的时候会提示有选择项:
如果选择第一个,在安装后配置git的时候就需要注意一些东西,如果选择第二项则git的连接都是通过ssh完成,后续配置简单一些。
选择plink模式在git clone的时候需要加载ppk
putty key的生成方式:
启动putty key generator
点击load按钮将刚才最先生成的ssh中的密钥id_rsa文件导入,然后弹出对话框提示导入成功,接着点击save private key来保存ppk文件,最后在git clone的对话框中加载ppk文件即可,连接的时候会提示输入git用户的密码,输入一下即可git clone gitosis的配置文件。
如果选择ssh模式的tortoisegit,那么就无需配置ppk,直接git clone。
这里在对话框中的git url填写的时候需要注意,是直接写gitosis-admin.git,而不是加有/home/git的绝对路径了。
关于gitosis的配置问题可以参考这篇博文:http://blog.prosight.me/index.php/2009/07/271