Git服务器搭建
github是免费托管代码开源的远程仓库。若不想公开代码,又不想付费,就只能创建自己的git服务器作为仓库使用。使用一台运行的linux的计算机,通过apt命令行就可以完成安装。
1.安装git
安装git:
sudo apt-get install git
创建一个git用户组和用户,用来运行git:
groupadd git
useradd git -g git
2.创建证书登录
收集需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。如果没有该文件,创建它:
$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
3.初始化仓库
选定一个目录作为仓库,假定是/home/gitrepo/allen.git,在/home/gitrepo目录下输入命令:
$ cd /home
$ mkdir gitrepo
$ chown git:git gitrepo/
$ cd gitrepo
$ git init --bare allen.git
Initialized empty Git repository in /home/gitrepo/allen.git/
以上命令创建一个裸仓库,裸仓库没有工作区。因为服务器上的git是为了共享,不让用户直接登录到服务器上去修改工作区,并且服务器上的git仓库通常都以’.git’结尾,把owner改为git:
$ sudo chown -R git:git allen.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每次一登录就自动退出。
4.克隆仓库
$ git clone git@192.168.45.4:/home/gitrepo/allen.git
Cloning into 'allen'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
192.168.45.4为git所在服务器的ip,将其修改为自己的git服务器的ip即可。
管理公钥
Gitosis
管理权限
Gitolite