您的位置:首页 > 运维架构 > Linux

git:Linux搭建服务器,windows客户端

2016-05-19 09:35 561 查看
很多人使用github和gitlab进行git服务器管理,github是别人的服务器,考虑到安全性,作为企业的角度,不考虑github,gitlab也是不错的选择,但是我这次要介绍的是,在linux系统下架设git服务器,并通过linux,windows客户端使用测试成功的例子。

1.查看Linux系统服务器系统版本

ifconfig

2在服务器上安装git及做些操作

- 执行命令

`

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

`

- 同时下载git-1.8.2.2.tar.gz文件,然后将其`mv` 到`/usr/local/src`目录。[git-1.8.2.2.tar.gz安装包下载地址][1]

```

cd /usr/local/src

sudo tar -zvxf git-1.8.2.2.tar.gz

cd git-1.8.2.2

sudo make prefix=/usr/local/git all

sudo make prefix=/usr/local/git install

```

- 增加软连接

```

sudo ln -s /usr/local/git/bin/* /usr/bin/

git --version #如果能显示版本号,即表示成功`

```

3.在服务器安装gitosis

```

sudo yum install python python-setuptools

cd /usr/local/src

git clone git://github.com/res0nat0r/gitosis.git

cd gitosis

python setup.py install

#显示Finished processing dependencies for gitosis==0.2即表示成功

```

4.在开发机上,生产密钥并上传到服务器上

```

ssh-keygen -t rsa #一路回车,不需要设置密码

#上传公钥到服务器(默认SSH端口22)

scp ~/.ssh/id_rsa.pub tailin@192.168.100.202:/tmp

```

或编辑`/etc/hosts`文件,在`/etc/hosts`文件里添加如下文本:

```

# local git server

192.168.100.202 zgit

```

然后再上传自己的公钥到服务器

```

scp ~/.ssh/id_rsa.pub tailin@zgit:/tmp/

# 登录到git服务器

ls /tmp/id_rsa.pub #显示已经上传的密钥

```

5.服务器上生成git用户,使用git用户并初始化`gitosis`

```

# 创建git版本管理用户 git

sudo useradd -c 'git version manage' -m -d /home/git -s bin/bash git

# 更改git用户的密码

sudo passwd git

# su 到git用户

su - git

gitosis-init < /tmp/id_rsa.pub

#显示以下信息即表示成功

#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/

#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

#删除密钥

rm -rf /tmp/id_rsa.pub

```

6.在个人开发机上导出项目管理

```

mkdir -p /repo

cd /repo

git clone git@zgit:gitosis-admin.git

```

7.在个人开发机增加及设置管理项目

```

cd /repo/gitosis-admin

# 查看git服务器已经上传密钥

ls keydir

cat keydir/ltl@jackliu-ThinkPad.pub

#ltl@jackliu-ThinkPad.pub为已经上传的开发机生成的公密

#显示密钥 最后的字符串为 密钥用户名 这里为 ltl@jackliu-ThinkPad

vim gitosis.conf

#在文件尾增加以下内容

[group test-git] # 具有写权限的组名称

writable = test-git # 该组可写的项目名称

members = ltl@jackliu-ThinkPad guangyun.ni@yeepay.com #该组的成员(密钥用户名) 多个用户协同开发时,以空格分隔

# 如果要增加只读的组 参考如下

# [group test-git-readnoly] # 具有都权限的组名称

# readonly = test-git # 该组只读的项目名称

# members = ltl@jackliu-ThinkPad # 该组的成员

#提交修改

git add .

git commit -a -m "add test-git repo"

git push

```

8.在个人开发机上初始,增加及使用项目test-git

```

cd ~/repo

mkdir test-git

cd test-git

git init

touch readme

git add .

git commit -a -m "init test-git"

git remote add origin git@zgit:test-git.git

git push origin master

```

9.增加协同开发者的公钥key到git服务器

- 执行`cd repo/gitosis-admin/keydir`切换目录

- 把协同开发者的id_rsa.pub 文件里的数据 拷贝到 对应的开发者的`密钥用户名.pub`文件。如把密钥用户名 guangyun.ni@yeepay.com 的 id_rsa.pub 文件中文本 粘贴到 guangyun.ni@yeepay.com.pub 文件里,并保存

- 然后将添加数据后的目录更新到git服务器

```

需要说明的是,必须由个人开发机上的keydir目录和gitosis.conf更新到远程服务器,才可以让其他协同开发者一起更新代码。

在windows下的客户端,需要安装mysysgit和TortoiseGit这两个软件,并在tortoisegit下按这篇文章操作
http://blog.csdn.net/xiaobin_hlj80/article/details/10953701
这样就可以完成windows客户端的git使用

转载自:http://bbs.csdn.net/topics/390902529/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: