1. 下载安装cygwin, http://cygwin.com/setup.exe;
下载时选择163的镜像,速度会快些;
安装时勾选Net | openssh (不要选成openssl)
- Devel | git
- Devel | git-completion
- Devel | git-gui
- Devel | git-svn (如果需要同时提交到svn)
- Devel | gitk
- Editors | vim
2. 执行安装后桌面的 Cygwin64 Terminal 图标,建议用管理员权限启动;
输入 cyglsa-config 回车,提示窗口选择 yes,然后重启系统;
3. 在windows 用户管理创建用户 git,密码设一下;
4. 启动cygwin;然后输入 ssh-host-config; 在提示中一路输入yes,
在是否使用另外一个名字替代cyg_service的提示中输入no;
最后提示Have Fun!表示配置完成;
然后 cygrunsrv --start sshd 启动 sshd 服务;
如果 sshd 启动不了,可以先 cygrunsrv --R sshd 然后重新 ssh-host-config 然后再 cygrunsrv --start sshd 试试看。
5. 配置windows防火墙允许22端口通过,方法是控制面板->系统和安全->系统防火墙->高级设置;
在高级安全设置-防火墙的程序窗口中添加一条入站规则,端口是22即可;
6. 配置git用户,在其他客户机中使用putty登录服务器,用户名、密码就是第3步设置的git用户和密码;
然后ssh-keygen 一路回车,然后将本地的ssh pub key上传到服务器,方法:ssh-copy-id git@,在命令行中输入用户名、密码完成;
然后logout,再用putty登录;
7. putty登录后在git用户的home目录下,编辑.bashrc
在文件末尾插入 export PATH=$PATH:/$HOME/bin 然后保存退出
在home目录创建bin目录;
然后切换到 /tmp, 依次输入如下命令
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
然后回到home目录,首先查看 ~/.ssh/.
authorized_keys
文件,如果文件不空,删除所有内容。
然后在home目录输入 gitolite setup -pk ~/.ssh/id_rsa.pub,然后根目录下会出现project.list和repositories两个目录。
在home目录下输入git clone git@:gitolite-admin 就可以看到gitolite-admin的内容。
然后编辑创建数据库即可。
主要问题:
1. 有时候碰到git登录ssh问题,我重新安装了cygwin解决依次;
2. gitolite setup -pk ~/.ssh/id_rsa.pub 提示 keydir/git.pub duplicates a non-gitolite key, sshd will ignore it, 是因为~/.ssh/.autorized_keys文件里面第一个key不是gitolite的,注释掉解决;
3. git clong gitolite-admin 总是clone一个空的,原因和第2个问题一样;
修改gitolite默认的仓库路径:
首先使用gitolite setup -pk git.pub 创建默认仓库。
然后编辑 vim .gitolite.rc 在 %RC= ( 下面添加一行
GL_REPO_BASE => "/cygdrive/e/xxx/",
然后保存退出;
然后再执行一遍 gitolite setup -pk git.pub 就会重新创建仓库到指定的路径了。
GL_REPO_BASE is a variable you can set in your ~/.gitolite.rc file. By default, it references $HOME/repositories .
But this isn't related to where you have installed gitolite.
You can install it wherever you want:
git clone git://github.com/sitaramc/gitolite
gitolite/install -ln /path/to/wherever/you/want
gitolite setup -pk yourname.pub
The OP added in the comments below:
I added this line to the .rc :
GL_REPO_BASE => "/home/gitolite",
(mind the trailing ', ')
|