原文链接:http://liuli.sourceforge.net/?p=1&replytocom=1

 

使用gitosis和tortoisegit打造自己的git服务

Author: leeon  Click: 1516   Date: 2011.02.19 @ 10:10:20 am Category: 软件工程

最近在折腾git服务器和windows git客户端的部署,网上的教程很多都不完整,没有一个很系统的教程描述如何使用tortoisegit来连接gitosis的教程,并使其正常工作,这里将自己的总结分享一下。

 

首先是要安装好python,和git这里就不用多说了。另外需要注意的是我前面的一篇博文关于python bin路径的问题。

安装gitosis的方法网上有很多教程,这里讲解的都是正确的,我就不多言了。

首先要在本地创建一个ssh密钥,这里有一个细节必须注意,不能用tortoisegit自带的Putty Key Generator来生成公私密钥,需要执行msysgit里面的msys.bat并在命令行中输入

 

1ssh-keygen.exe -t rsa

 

然后一路回车,这样就会在

C:\Users\leo\.ssh (“leo”这里根据每个人电脑里面的用户名不同而不同)

下生成一个公钥一个私钥,

再在mysysgit的命令行下输入命令将id_rsa.pub文件传给远程的linux git服务器端。

 

1scp id_rsa.pub git@www.leeon.me:~

 

server端接收后就可以用gitosis-init命令来初始化gitosis服务了

 

1gitosis-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

这样写会提示:

 

1fatal: 'gitosis-admin.git' does not appear to be a git repository
2fatal: 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