首先要感谢“非亦不可”,本人最近突然把项目服务器搞坏了,而项目又急需用,不得已又急用,大部分参照“非亦不可”的博文才成功搭建好服务器。但是遵照“非亦不可”的教程,有一些小的地方还是需要注意一下,我做了适当的修改,然后成功搭建好了服务器。以下绝大部分都是转自http://blog.csdn.net/aaron_luchen/article/details/10498181/,所以这篇文章算大半转载,小半原创。
这里再次对“非亦不可”表示感谢,希望能继续努力。
我在文章后半部分加了一些自己实践的经验,希望对大家有所帮助,能少走一些弯路。
准备工作:
1、 Git-1.8.1.2-preview20130201.exe
下载地址:
https://code.google.com/p/msysgit/downloads/list
2、 Copssh_4.1.0_Installer.exe
下载地址:
http://download.csdn.net/download/zzjzmdx/4636227
3、 TortoiseGit-1.8.5.0-64bit.msi
下载地址:
https://code.google.com/p/tortoisegit/wiki/Download?tm=2
服务器系统:Windows Server 2003 SP2
客户端系统:Windows 7 SP1
服务器端安装及部署
1、安装Git
此处选择默认安装
此处选择第三个,不去转换成unix的代码风格
完成安装
2、安装SSH及配置用户
安装在根目录下,避免路径中有空格,造成不必要的麻烦
此处是设置SSH的帐号密码
安装好后提示通过“COPSSH Control Panel”添加用户
完成安装
开始配置SSH用户
选中“Users”选项卡,点击Add按钮添加用户
选择用户名,此处可以选择刚刚安装SSH时设置的“SvcCOPSSH”用户,也可以自己新建一个用户来操作,本教程新建了一个GitAdmin的用户作为管理账户。
安装完成后还有两个操作:
1、将Git安装目录D:\Program Files\Git\libexec\git-core文件夹下的git-upload-pack.exe、git.exe、git-receive-pack.exe和git-upload-archive.exe这4个文件复制到SSH的安装路径D:\ICW\bin下。
2、将Git安装目录D:\Program Files\Git\bin\libiconv-2.dll复制到D:\ICW\bin下。
3、连接Git版本库
进入SSH安装目录下的bin文件夹,调用ssh.exe文件,输入以下代码:
“ssh GitAdmin@你的服务器名称或者IP地址”
键入yes
输入密码
看到这个界面,代表连接成功。此时你已经通过SSH协议连接上了Git。
4、建库操作
登录完成后,此时的实际路径是在D:\ICW\home\GitAdmin
建库操作步骤如下:
mkdir testgit //创建testgit文件夹
cd testgit //进入testgit文件夹
git init //版本库初始化,会以testgit为库名建立一个新库
touch first.txt second.txt //创建first.txt和second.txt文本文档
git add . //将文件添加至Git
git config –global user.email “[email protected]”//设置邮箱地址
git config –global user.name “Your Name” //设置用户名
git commit –m “init” //将修改提交至Git
cd ~/.ssh //进入.ssh文件夹
ssh-keygen –t rsa –C “[email protected]” //生成公钥,默认名称为id_rsa
至此,服务器端的安装与配置完毕。
注:Git默认设置克隆版本修改master版本内信息后不能提交修改,如需开放权限,要修改.git/config文件后面添加如下代码:
[receive]
denyCurrentBranch = ignore
客户端安装与配置
1、安装Git
安装步骤与服务器端相同。
2、安装TortoiseGit
安装完毕
此时在你的电脑鼠标右键就能看到Git已经集成到了系统快捷操作中。
3、配置TortoiseGit
首先设置TortoiseGit>Settings>Network中SSH client的值为”d:\Program Files(x86)\Git\bin\ssh.exe”。
新建测试local文件夹,右键选中Git Clone选项,会弹出对话框,输入正确的URL,选择Web方式,选好本地的文件夹,点击确定。
URL正确的话,会弹出输入密码界面,输入正确后,会将库信息克隆到本地。
看到Success,恭喜你,你已经获取到了服务器上的库信息。
完成上面所有的步骤后,如果远程客户端还是没办法实现
Git Clone,Push等正常操作,请尝试以下内容:
1、关闭服务器电脑的所有杀毒软件;
2、关闭服务器电脑的windows防火墙;
因为防火墙会阻止Git服务器端口号22传送数据,感觉我的客户端最开始测试时没法
Git Clone就是端口号22被防火墙阻隔了;
3、检查COPSSH Control Panel的服务有没有开启:
点击计算机->右键->服务->查看Openssh SSHD服务开启没有;
4、如果你的客户端可以Git Clone操作,但是不能进行Push操作,可以对比.git下的
config文件的参数与下面的参数有什么区别:
[core]
repositoryformatversion = 0
filemode = false
bare = true
logallrefupdates = true
symlinks = false
ignorecase = true
我发现我之前可以Push的版本中bare = true,然而测试的版本.git中config的bare =
false,遂将bare修改为true,修改完后可以正常将客户端正常Push了,具体原因有知
道的朋友可以给我留言。至于原博主所说添加[receive] denyCurrentBranch = ignore,
我还没发现有没有作用。
5、个人感觉上面配置教程中“配置TortoiseGit”的:
设置TortoiseGit>Settings>Network中SSH client的值为”d:\Program Files(x86)\Git\
bin\ssh.exe”。
这一步没有什么作用,可以不进行设置。
我个人感觉能补充的东西大概就这么多了,有问题的朋友,大家可以一起讨论,共同进步。