如何在windows上架设Git服务器

如何在windows上架设Git服务器,第1张

如何在windows上架设Git服务器
翻译自google(或者googlecode),自己加了一段关于ssh密钥的 *** 作。
TortoiseGit + msysgit + CopSSH + WindowsXP as server
1需要软件
msysgit (服务器和客户端)
CopSSH (服务器)
TortoiseGit (客户端)
Junction Link Magic (服务器,可选)
版本就不写了,找最新的就是
2服务器上
安装msysgit
选择plink, 不是OpenSSH
选择将Git加入path (第二个选项)
安装CopSSH
使用默认设置安装
CopSSH默认安装在C:\Program Files\ICW\
修改CopSSH设置
在C:\Program Files\ICW\etc\sshd_config中, 下面一行取消注释并设为"no"
PasswordAuthentication no
建立一个windows账户
Control Panel > User Accounts > Create new account
在CopSSH中激活这个账户
Start > Programs > Copssh > "Activate a user"
选择一个账户,其他的用默认(/bin/bash, 等)
输入密码,这个密码必须记住,将用来激活私钥。
在C:\Program Files\ICW\home, 每个账户有一个子目录。将其中的<user>key和<user>keypub和刚刚输入的密码发给用户
安装一个空的git仓库
如准备将D:\project1作为Git仓库
在cmd中输入如下命令
d:
md \project1git
cd \project1git
git --bare init
这样,d:/project1就成为一个git仓库
赋予用户修改权限
在D:\project1上右键 > 安全,允许刚建立的windows账户"写"和"修改"
服务器上打开22端口
由于ssh服务器不能找到git命令,需要如下 *** 作:
Start > CopSSH > Start a unix bash shell
cd /Bin
建立符号链接到gitexe, git-receive-packexe, git-upload-archiveexe, git-upload-packexe:
$ ln -s /cygdrive/c/Program\ Files/Git/bin/gitexe gitexe
$ ln -s /cygdrive/c/Program\ Files/Git/libexec/git-core/git-receive-packexe git-receive-packexe
$ ln -s /cygdrive/c/Program\ Files/Git/libexec/git-core/git-upload-archiveexe git-upload-archiveexe
$ ln -s /cygdrive/c/Program\ Files/Git/libexec/git-core/git-upload-packexe git-upload-packexe
(按自己的安装git的路径改,空格要转为"\ ")
可选步骤:安装Junction Link Magic
在C:\Program Files\ICW\home\用户的目录下建立一个空目录,名称为pro1
启动Junction Link Magic,将git仓库的目录D:\project1 junction到C:\Program Files\ICW\home\用户\pro1
服务器设置结束
3 客户端上
对于用户,要有
私钥文件如<user>key
私钥文件的密码
服务器地址
服务器上用户的ID
安装 msysgit
选择plink
选择将git放入windows path
安装TortoiseGit
安装后,在Settings > Network > SSH设置:
SSH Client = C:\Program Files\TortoiseGit\bin\TortoisePlinkexe
(下面的 *** 作很可能不成功,需要另外的方式配置密钥)
运行C:\Program Files\TortoiseGit\bin\puttygenexe:
CopSSH中生成的密钥是OpenSSH keys, 但这里需要putty keys。将私钥转成putty格式的。
按 "Load" > 选择文件 <user>key
找个地方保存私钥 <user>ppk
运行C:\Program Files\TortoiseGit\bin\Pageantexe
加入新生成的<user>ppk,在询问密码时输入密码
注意: 每次启动后,都需要运行Pageantexe, 加入<user>ppk, 并输入密码
在我的机器上,TortoiseGit自带的puttygen不认CopSSH生成的OpenSSH keys,需要下载最新的puttygen
>在Win7下搭建GIT SSH服务
项目需要做版本管理,有一个要求就是需要离线提交这一句,直接封杀了VssVSN
TortoiseHG虽然易用,但对中文文件名,支持很差,无法将中文文档提交找了半天原因无果
只能转向GIT
安装GIT以及搭建Git服务一共用到下列软件:
copSSH (注:SSH服务器软件)
msysgit (注:WINDOWS下的git安装包)
TortiseGIT (注:WINDOWS下的git图形化软件,与TortiseSVN是同门)
PuTTY Installer (注:生成公钥-私钥对的软件,并可用于SSH客户端的登陆)

我参考了如下文档
GIT视频教程:(>搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git
第二步,创建一个git用户,用来运行git服务:
$ sudo adduser git
第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsapub文件,把所有公钥导入到/home/git/ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/samplegit,在/srv目录下输入命令:
$ sudo git init --bare samplegit
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以git结尾。然后,把owner改为git:
$ sudo chown -R git:git samplegit
需要服务器找我:展翼小T
第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/samplegit
Cloning into 'sample'
warning: You appear to have cloned an empty repository
剩下的推送就简单了。
管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。
管理权限
有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等 *** 作,达到权限控制的目的。Gitolite就是这个工具。
这里我们也不介绍Gitolite了,不要把有限的生命浪费到权限斗争中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13462028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-11
下一篇 2023-08-11

发表评论

登录后才能评论

评论列表(0条)

保存