简单Git Server搭建及其测试

来源:互联网 发布:情义知多少日本电影 编辑:程序博客网 时间:2024/06/05 09:39

简单Git Server搭建及其测试

乔丹丹 2015/8/11

Mac下搭建服务器

环境:iMac       版本:10.10.3(客户端)

MacPro     版本:10.10.3(服务器)

思路:选择一台MacPro作为服务器端,搭建服务器,实现其他的客户端通过ssh机制访问服务器端,实现客户端commit,push代码到服务器端的代码仓库,其他客户端也可以pull代码到本地,这样既实现了便捷管理代码也满足了企业代码放在自己的服务器上的需求。

 

步骤一、在服务器端创建一个账户

 

1、通过System Preferences->accounts 添加一个账户,其他客户端通过这个账户来访问服务器。(这一步骤也可以不进行,不创建账户的话,客户端都是通过服务器端的默认账户来访问服务器的。)

2、使用新创建的账户登录服务器,在SystemPreferences->Sharing

勾选该账户下的:WebSharing 和Remote Logig。

步骤二、安装gitosis

   在这里(https://github.com/tv42/gitosis)下载最新的gitosis。或者在终端执行指令git clonehttps://github.com/tv42/gitosis.git来下载gitosis

安装gitosis,进入gitosis目录,使用指令sudopython setup.py install 安装gitosis.

cd gitosis/

sudo python setup.py install

步骤三、制作ssh公钥

1、        在客户端,做作ssh公钥。

cd ~


ssh-keygen -t rsa


至此,就已经生成了公钥

 

      cd .ssh

ls


查看公钥,我们将客户端的公钥拷贝到服务器端

2、在服务器端,将公钥追加添加到authorized_keyswen文件中。

      cp id_rsa.pub /tmp/ yourame .pub

这条指令将公钥拷贝到了tmp目录下yourname可以替换成客户端对应的名字

sudo -H -u gitgitosis-init < /tmp/yourname.pub

这条指令,使用ssh公钥初始化了gitosis

      cd ~

      cd .ssh

      ls

执行到这里,可以看到authorizedl_keys文件。

catid_rsa.pub>>authorized_keys

这条指令实现了把客户端的公钥追加到authorized_keys文件中。

(如果修改了文件名字,指令应该是cat yourname.pub>>authorized_keys)

1、然后打开authorized_keys稍作修改

open –e authorized_keys

就打开了文件,将ssh之前的那段"command="gitosis-serveyourname",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty" 删掉,剩余的就是ssh公钥。保存退出。

4、对post-update赋予可写权限,以便客户端可以提交更改。

sudo chmod 755/Users/git/repositories//gitosis-admin.git/hooks/post-update

会提示输入密码,输入密码之后

cd ~

cdrepositories/

ls

会查看到gitosis-admin.git文件夹

2、修改git账户的path路径

touch ~/.bashrc

 echoPATH=/usr/local/bin:/usr/local/git/bin:\$PATH > .bashrc

echo exportPATH >> .bashrc


cat .bashrc


步骤四、连接做准备

在每个客户端,要设置git的config信息,这样git才能识别who you are。否则会在你提交的时候提示你,tell me who youare。

git config--global user.name "yourgitname"

globaluser.email "yourmail@yourcom.com"

注意:此处的email必需是与你刚才产生公钥的那个email是一致的。这样子才能通过生成的公钥来实现访问服务器端。

步骤五、测试连接,clone服务器端代码到本地

1、测试通过ssh是否可以正常连接上服务器端

sshgit@10.1.4.211

git是服务器端你设置的那个帐号,如果没有新设置帐号,那么就应该是你服务器机子默认的用户的名字,@后面是服务器的ip地址。登录成功之后,终端用户名字就会变成服务器端的名字。

2、        在本地clone服务器仓库

git clone git@10.1.4.211:repositories/gitosis-admin.git

第二个git替换成服务器相应的用户名,IP换成相应的服务器的ip,成功 clone 服务器的 gitosis-admin 仓库至本地

在gitosis-admin中添加项目进行commit,push,pull下来代码等操作。

服务器搭建完成之后代码管理测试

服务器端: qiaodan MacPro

客户端1:   qiaodandan iMac

客户端2:   gaoqinghua iMac

实现:

1、        打开一个文件在,在这个位置,终端执行操作,clone下来代码仓库。图示:


2、        在相应的代码仓库位置建立项目进行操作,图示代码仓库位置:


3、        客户端2创建一个项目,commit到本地,push到服务器qiaodan MacPro。

4、        操作之前可能会要求输入密码,如图所示:


5、        客户端1 pull下客户端1的代码。

6、        修改追加代码,commit到本地,push到服务器。

7、        客户端2 pull最新代码成功。如图:


8、        客户端1创建一个branch QD分支,进行代码分支编写,commit到本地,push到服务器。

9、        客户端2在原来代码上进行修改,commit到本地,push到服务器。

10、    然后客户端2进行两个代码分支的合并,merge操作,提供有左边,右边,先左后右,先右后左四种选择。根据实际情况,进行合并。如图所示:


 

 

 

0 0
原创粉丝点击