Chinaunix首页 | 论坛 | 博客
  • 博客访问: 567921
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2356
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-26 15:52:08

git windows服务器配置

软件下载地址:
msysgit 当前版本1.7.3.1:
copssh 当前版本4.0.2:
tortoisegit 当前版本1.6.2.0:
WinSCP 当前版本4.2.9:

在安装之前确保以前安装的残渣都被清干净。
(例如安装后的文件,Openssh SSHD服务,SvcCOPSSH用户,sshd用户,C:\git_shell_ext_debug.txt,C:\Documents and Settings\SvcCOPSSH 等等)

服务器安装 msysgit 和 copssh
客户端安装 msysgit,tortoisegit可选,WinSCP可选

msysgit安装时选择了"Checkout as-is,commit as-is"
tortoisegit安装时选择了"TortoisePLink"

服务端配置:
a. 在 菜单\开始\程序\Copssh\COPSSH Control Panel\Status 中,确保Service is running
此Service对应着Openssh SSHD服务,有问题的话自己去看看,一般都是修改了密码导致此服务启动失败
控制台下输入 netstat -an,应该看到 0.0.0.0:22

b. 在 菜单\开始\设置\控制面板\管理工具\计算机管理\本地用户和组\用户 增加 git000
密码"git000"
用户不能更改密码
密码永不过期
本地路径 D:\sources\var
(应该去掉“隶属于 Users”,使之权限最小。然后在允许此用户操作的目录上点右键,选择“属性\安全”,精确控制此用户对此目录的权限。)

c. 在 菜单\开始\程序\Copssh\COPSSH Control Panel\Users\Add 增加 git001
Access type我选择linux shell and sftp,因为我觉得sftp也是个好东西
(注意,域用户可以加入,但死活都说密码不对,这个bug浪费了我一天时间)
可以打开C:\Program Files\ICW\etc\passwd文件看看,里面有用户和用户对应的目录,比如
git000 对应着 /cygdrive/d/sources/var,以后想修改时可以直接修改此文件

d. 拷贝 C:\Program Files\Git\ 中的 libiconv2.dll git-upload-pack.exe git-upload-archive.exe git-receive-pack.exe git.exe 到 C:\Program Files\ICW\bin 中
(有更优雅的解决方法,但我没试验成功,因此就直接拷贝算了)
(优雅的解决方法:
编辑C:\ICW\etc\profile文件,
syspath=`/bin/cygpath -S`
winpath=`/bin/cygpath -W`
gitpath1=`/bin/cygpath "C:/Program Files/Git/bin"` #用反斜杠
gitpath2=`/bin/cygpath "C:/Program Files/Git/libexec/git-core"` #用反斜杠
export PATH="/bin:$syspath:$winpath:$gitpath1::$gitpath2"
在 菜单\开始\程序\Copssh\Start a Unix BASH Shell 中输入 echo $PATH 看看路径对不对;
然后再输入git-upload-pack.exe,应该能找到此文件。
但是,git启动时并不去调用profile,所以
编辑C:\Program Files\ICW\home\git000\.bashrc文件,
gitpath1=`/bin/cygpath "C:/Program Files/Git/bin"` #用反斜杠
gitpath2=`/bin/cygpath "C:/Program Files/Git/libexec/git-core"` #用反斜杠
export PATH="$PATH:$gitpath1:$gitpath2"
但还是屁用没有

e. 在 菜单\开始\程序\Copssh\Start a Unix BASH Shell 中输入
cd bin
ssh git000@xp19.tools.net
git000@xp19.tools.net's password: git000
$ cd ~
$ ls
显示 D:\sources\var 的内容
$ cd /
$ ls
显示 C:\Program Files\ICW 的内容
这说明用SSH登陆成功
$ exit
$ exit
(可以看出以这种方式登录时,根目录是C:\Program Files\ICW,工作目录是D:\sources\var)

f. 到D:\sources\中建立了一个abc目录,在abc目录中又建了一个a文件
在abc目录内点右键,选择Git Bash,输入
git --bare init
这样就在服务器上建立了一个空仓
在D:\sources\abc上点右键,选择“属性\安全”,加入git000用户,精确控制此用户对此目录的操作权限……
(客户端用git登录时,根目录将认为是d:\,工作目录是D:\sources\var)

客户端操作:
a. 在F盘中创建test目录,点右键,选择 Git Bash,然后输入
$ git clone -v git000@xp19.tools.net:/abc abc
失败
$ git clone -v file://git000@xp19.toold.net:/abc abc
失败,竟然将C:/Program Files/Git/作为根目录

b. 安装tortoisegit,在F盘中创建test目录,点右键,选择 Git Clone,然后输入
ssh://xp19.tools.net/sources/abc,按确定,输入用户git000,输入用户git000
成功
在abc上创建Branch,名为123(右键,TortoiseGit\Create Branch)
成功(看起来像没有任何反应,但相应的菜单有了。右键,选择Git Branch,就能看到)
修改f:\test\abc\a文件,在f:\test\abc上点右键,选择Git Commit->"master"
成功
右键,选择TortoiseGit\Push
成功
换个地方重新下载,a文件是修改后的内容,说明刚才的Push操作是成功的

c. TortoiseGit的设置
设置TortoiseGit\Settings\General\MSysGit中设置Git.exe所在路径,假如你更改了git的安装位置,就需要修改此处
TortoiseGit\Settings\Git\Config中设置用户信息,提交时必须设置

d. 如果你还想使用 sftp
安装WinSCP后,打开WinSCP,主机名输入 xp19.tools.net,用户名 git000,密码 git000,然后点击登录

其它:
procexp.exe和Procmon.exe是两个免费工具,可以从M$网站上下载到。
当删除某个文件时总是报此文件正在被使用,打开procexp.exe,菜单:Find\Find handle or dll,然后输入文件名,点search后就可以看出到底是谁在使用这此文件。
当用git下载文件时总是失败,在服务器上打开Procmon.exe,监控一下git-upload-pack.exe到底在哪儿找文件。
附上git的关系图:

阅读(1197) | 评论(1) | 转发(0) |
0

上一篇:USB通讯的尝试

下一篇:CRC16实现之一

给主人留下些什么吧!~~

网友评论2012-11-26 15:53:23

fly4us
git clone file://user@ip:/driver:/path/.git localpath