版本管理

搭建服务-git

2018-09-19  本文已影响0人  一点金光

方案1

# 操作系统:Debian

# 下安装包
$ sudo apt-get install git

# 创建用户
# 用来运行git服务
$ sudo adduser git
# 创建群组
$ sudo groupadd -g 101 git

# 创建证书
# 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件(通过ssh-gen生成时)
# 把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个

# 创建仓库
# 创建一个/srv/sample.git仓库,在/srv目录下输入命令:
sudo git init --bare sample.git
# 这是一个裸仓库,它没有工作区。因为服务器上的Git仓库纯粹是为了共享,不需要用户直接登录到服务器上去改工作区。
# 并且服务器上的Git仓库通常都以.git结尾

# 更改所属
sudo chown -R git:git sample.git

# 登录方式
# 禁用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每次一登录就自动退出。

# 克隆仓库
# 在本地电脑上
# server为搭建的私有仓库的服务器地址
git clone git@server:/srv/sample.git

# 管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的`/home/git/.ssh/authorized_keys`文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用[Gitosis](https://github.com/res0nat0r/gitosis)来管理公钥。

# 管理权限
# 可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。[Gitolite](https://github.com/sitaramc/gitolite)就是这个工具。




# 参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

方案2

# 操作系统:Centos 

# 安装Git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git

# 创建群组
$ groupadd git
# 创建用户
$ useradd git -g git

# 创建证书
# 把各个成员的公钥导入到/home/git/.ssh/authorized_keys文件里
$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys

# 创建目录
# 选定一个目录作为Git仓库,假定是/home/gitrepo

# 创建仓库
# 在/home/gitrepo目录下输入命令git init --bare runoob.git:
$ cd /home
$ mkdir gitrepo
$ chown git:git gitrepo/
$ cd gitrepo

$ git init --bare runoob.git

# 克隆仓库
# git clone git@192.168.45.4:/home/gitrepo/runoob.git

# 参考: http://www.runoob.com/git/git-server.html

上一篇下一篇

猜你喜欢

热点阅读