如何在Mac上快速搭建git服务器
Git支持的协议主要是四种:
本地: 需要文件共享系统,权限不好控制
HTTP:速度慢
SSH:同时支持读写操作,不支持匿名的读取(Git默认协议)
GIT:最快
从
搭建的难易程度和特点综合筛选,最合适的还是ssh,并且大部分服务器上基本都有ssh服务,所以省去了不少麻烦。一个最基本的思路是给每一个人一个
ssh帐号,这样大家就可以通过用户名和口令来访问了,但是显然这不是一个好的选择,这个做法有些多余,并且对于repo的权限很难管理。
1、打开控制面板->管理工具->服务项目,禁用Windows防火墙服务。
2、打开控制面板->管理工具,双击“路由和远程访问”。然后右键点击服务器图标,再点击“配置并启用路由和远程访问”。
3、在“路由和远程服务器安装向导”中,选择“自定义配置”。
4、勾选“***访问”和“NAT和基本防火墙”。
5、点击“完成”。系统提示“要开始服务吗?”,选择“是”。
6、接下来开始配置路由和远程访问,我们先点击本地服务旁边的+按钮,把左侧菜单展开,再点击IP路由选择旁边的+按钮。
7、下面配置静态IP地址。右键点击本地服务,点击属性,再点击IP选项卡。
8、点选“静态地址池”,点击“添加”。输入一个起始IP地址和结束IP地址范围,推荐输入1921681100到1921681254这个范围,因为192168段属于本地保留IP段。最后点击“确定”。
9、右键点击“静态路由”,再点击“新建静态路由”。
10、目标和网络掩码都输入0,网关请和TCP/IP属性中的默认网关保持一致。
11、删除“DHCP中继代理程序”中的“内部”项目。
12、然后右键点击“DHCP中继代理程序”,再点击“新增接口”。
13、选择“本地连接”,再点击“确定”,然后在弹出的对话框中点击“确定”。
14、右键点击“NAT/基本防火墙”,再点击“新增接口”,然后选择“本地连接”,点击“确定”。
15、在弹出的对话框中先点选“公共接口连接到Internet”,再勾选“在此接口上启用NAT”,最后点击“确定”。
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器。一、安装GIT
Windows下使用msysgit,
本文使用Git-178-preview20111206exe 安装要点步骤
安装完成后,可以使用Git bash在命令行模式下操作git
二、安装CopSSH
安装CopSSH之前先确保防火墙开启了SSH端口,这个虽然不影响CopSSH的安装,但是影响SSH访问,所以写在前面。
CopSSH是windows下的SSH服务器软件,下载地址baidu之,本文使用的是Copssh_410_Installerexe,
安装完成后,到控制面板中新建一个管理员账户root,用这个账户来共享SSH。然后你在账户管理中会看到之前的SvcCOPSSH账户。
将root用户添加到CopSSH用户中,为简单操作,允许使用密码认证方式
若是不允许密码认证,则需要使用公钥密钥方式认证,
三、CopSSH中使用GIT
现在已经安装GIT和CopSSH,接下来需要做的就是让CopSSH可以使用GIT的命令,这样不仅能够远程SSH管理GIT服务器,而且可以将GIT仓库通过SSH共享。具体的操作方法是将GIT的某些命令程序和动态链接库复制到CopSSH安装目录下即可。
l 将$ Git\libexec\git-core目录下的gitexe , git-receive-packexe , git-upload-archiveexe , git-upload-packexe复制到$ICW\bin目录下
l 将$Git\bin目录下的libiconv-2dll复制到$ICW\bin目录下
重启CopSSH即可
第一步,下载gitblit
http://gitblitcom/
这里当然是选择linux/osx的版本。下载下来是一个targz的压缩文件,我下载时最新版本是gitblit-171targz
第二步,配置gitblit
创建目录,作为git服务器存储数据的根目录,比如我这里的目录是:
/Users/xxxx/gitserver/gitRepository
解压第一步下载的文件,然后进入data子目录,找到defaultsproperties打开。这里的很多配置项都可以使用缺省,不过一般会把
gitrepositoriesFolder配置下。这里就配置成上面新建的目录gitRepository的路径。
然后找到serverhttpPort,设定http协议的端口号,这个端口号理论上来说可以随便指定,这里我设置成7070。
保存,关闭
启动gitblit服务,这里我只给出手动启动的方式(自动随系统启动还没研究,哈哈),其实手动方式也不麻烦,安装包里做好了可执行的脚本,我们只要在
终端运行就可以了,如下所示:
第三步,测试git服务器
打开浏览器,输入http://localhost:7070/(localhost也可以换成你本机的ip地址),进入gitblit web管理页面:
默认的用户名和密码是admin,强烈建议登陆后修改密码。登陆后创建一个用户,然后在该用户下创建项目目录,这里叫leanrgit
然后用本地的一个git工作目录与之关联,就可以commit,push这些操作了:
Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器。
一、安装GIT
Windows下使用msysgit,
本文使用Git-178-preview20111206exe 安装要点步骤
安装完成后,可以使用Git bash在命令行模式下操作git
二、安装CopSSH
安装CopSSH之前先确保防火墙开启了SSH端口,这个虽然不影响CopSSH的安装,但是影响SSH访问,所以写在前面。
CopSSH是windows下的SSH服务器软件,下载地址baidu之,本文使用的是Copssh_410_Installerexe,
安装完成后,到控制面板中新建一个管理员账户root,用这个账户来共享SSH。然后你在账户管理中会看到之前的SvcCOPSSH账户。
将root用户添加到CopSSH用户中,为简单操作,允许使用密码认证方式
若是不允许密码认证,则需要使用公钥密钥方式认证,
三、CopSSH中使用GIT
现在已经安装GIT和CopSSH,接下来需要做的就是让CopSSH可以使用GIT的命令,这样不仅能够远程SSH管理GIT服务器,而且可以将GIT仓库通过SSH共享。具体的操作方法是将GIT的某些命令程序和动态链接库复制到CopSSH安装目录下即可。
l 将$ Git\libexec\git-core目录下的gitexe , git-receive-packexe , git-upload-archiveexe , git-upload-packexe复制到$ICW\bin目录下
l 将$Git\bin目录下的libiconv-2dll复制到$ICW\bin目录下
重启CopSSH即可
GIT服务器包含GIT和OpenSSH,GIT用于软件版本控制管理服务器端,OpenSSH为Windows版本的SSH服务器端软件。
安装msysgit
安装步骤此处略去。
END
安装CopSSH
安装步骤此处略去。
END
修改配置
修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,确保如下行为非注释行,且设置为“no”:
END
生成用户帐号
1
在服务器上生成Windows用户,取消用户下次登录时须更改密码,设置密码永不过期:
2
将该用户隶属于GitUser组(如尚未生成改组,则先生成改组):
END
激活用户
1
在Windows启动程序组中,运行如下程序(C:\Program Files\ICW\bin\ copsshcpexe):
2
进入COPSSH Control Panel应用对话框,正常情况下服务应该为正在运行(图标为绿色,如为红色,则可尝试点选该按钮,启动该服务):
3
选择Users页面:
4
点选Add按钮,出现如下导航对话框:
5
选择Forward按钮,出现如下页面,选择欲激活的用户对应的域名及用户名:
6
选择Forward按钮,进入如下页面,选择Linux shell and Sftp,所有选项选中:
7
选择Forward按钮,进入确认页面,选择Apply:
8
回到如下页面,选择Apply后,关闭。
END
公钥文件上传
1
从用户处取得对应帐户的公钥文件authorized_keys,复制到C:\Program Files\ICW\home\ricky\ssh目录下(\ricky\是对应的用户名);
2
Windows启动程序组中运行Start a Unix BASH Shell(或Windows运行中运行命令:"C:\Program Files\ICW\bin\bashexe" --login -i):
3
运行如下unix命令行,如运行未出错,则完毕。
END
生成Git库容器目录
1
在服务器硬盘上生成一个目录,用来容纳Git库,比如生成E:\ GITTestRepo\目录;
2
鼠标右键点击该目录,选择共享和安全…;
3
在弹出的该目录属性对话框的安全页中加入用户对应的组GitUser;
4
确认该用户组权限设置了允许修改、读取和运行、列入文件夹目录、读取、写入,选择确定后完毕。
END
确认防火墙开放了22端口
确认服务器的防火墙没有禁止22端口的TCP/IP通信。
END
修改用户登录运行脚本
1
修改C:\Program Files\ICW\home\ricky\bashrc文件(\ricky\是对应的用户名),在文件最后加入如下行:
众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的。
搭建环境:
服务器 CentOS66 + git(version 1831)
客户端 Windows10 + git(version 2111windows1)
1 安装Git相关软件
Linux是服务器端系统,Windows作为客户端系统,分别安装Git
安装客户端:
下载 Git for Windows,地址:https://git-for-windowsgithubio/
安装完之后,可以使用Git Bash作为命令行客户端。
安装Gitosis
出现下面的信息表示安装成功了
2 服务器端创建git用户来管理Git服务
3 配置公钥
在Windows上配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行
4 配置gitosis
使用git用户并初始化gitosis
在Windows上机器上clone gitosis-admin到管理者主机
gitosisconf: git服务器配置文件
keydir: 存放客户端公钥
配置 gitosisconf 文件
在Windows管理者机器上创建本地test仓库,并上传到git服务端
提交到远程服务器
服务端会自动创建test仓库
5添加其他git用户开发者
由于公司开发团队人数不断增多,手动添加开发者私钥到/home/git/ssh/authorized_keys比较麻烦,通过上面的Windows机器的管理者统一收集其他开发者的私钥id_rsapub文件,然后传到服务器上,配置好后,用户即获得项目权限,可以从远程仓库拉取和推送项目,达到共同开发项目。
推送完成后,新加进来的开发者就可以进行项目的开发了,后续增加人员可以这样添加进来,开发者直接把仓库clone下来就可以了。
0条评论