1. 安装cygwin 安装
Net | openssh (不要选成openssl)
Devel | git
Devel | git-completion
Devel | git-gui
Devel | gitk
Editors | vim
Python | python
2. 用管理员权限执行桌面的cygwin图标进入shell界面
输入cyglsa-config
输入yes
然后重启系统;
3. 输入 ssh-host-config 然后一路yes,输入Cyg_server时,重命名提示那儿选择no,然后输入默认密码;
直到显示 Have Fun。
如果有warning,则可以先 cygrunsrv -R sshd 然后重新执行 ssh-host-config;
4. 启动 sshd,输入 cygrunsrv --start sshd
5. 创建 gitd 文件
vim /bin/gitd
输入
#!/bin/bash
/usr/bin/git daemon --reuseaddr \
--base-path=/cygdrive/d/git \
--export-all \
--verbose \
--enable=receive-pack
然后保存退出;
注意 cygdrive/d/git 就是git仓库位置;
6. 创建gitd服务;
命令行输入
cygrunsrv --install gitd --path c:/cygwin64/bin/bash.exe --args c:/cygwin/bin/gitd --desc "Git Daemon" --neverexits --shutdown
7. 启动gitd服务
cygrunsrv --start gitd
8. 在 /cygdrive/d/git 目录下导入android源码;
注意在 windows 2008 R2 服务器上,要新建防火墙的入站规则,允许 git daemon 端口 9418 的通过。
这样在客户机上 git clone git://xxx 才能成功。
另外,要允许 ssh 无密码登录,需要操作系统创建 git 用户,然后在客户机上使用 putty 和 git 账号远程登录到服务器。
输入 ssh-keygen 生成 git 的key,使用 ssh-copy-id git@<server> 将 git 用户的key添加到服务器。
然后在客户机上使用git用户复制其他机器的仓库到服务器 git clone --bare git://xxxx。
所有开发者都需要创建自己的 ssh key,然后将各人的id_rsa.pub内容复制到 git 账户的根目录下的 /home/git/.ssh/authorized_keys文件中。
这样其他开发者只要git clone git://<server>/xxx.git 就可以直接取代码了。
如果服务器要建立 android 源码的镜像,可以在客户机上用 git 账户配置:
- curl http://android.git.kernel.org/repo > ~/bin/repo
- chmod a+x ~/bin/repo
- cd /cygdrive/d/git
- mkdir android
- cd android
-
repo init -u https://android.googlesource.com/platform/manifest --mirror
repo sync -j18
然后就可以了。
使用其他开发者账号就可以 repo init -u git://<server>/android/platform/manifest && repo sync -j18 了。
参考文章 :
http://aspiringcraftsman.com/2012/02/20/hosting-a-git-repository-in-windows/