创建用户
创建一个
git
用户,用来运行git
服务
adduser git
不允许git用户登录shell
vim /etc/passwd
---------------
git:x:502:503::/home/git:/bin/bash
改为:
git:x:502:503::/home/git:/usr/bin/git-shell
创建裸库
使用–bare创建一个git裸库
cd /home/git/
mkdir store
cd store
git init --bare sample.git
chown -R git:git /home/git/store
ssh authorized_keys授权,记得是为git用户添加rsa授权
git自身不支持权限控制,但Git支持钩子(hook),所以可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的
vim /home/git/.ssh/authorized_keys
----------
将客户端 id_rsa.pub 追加进authorized_keys中
客户端clone
生成rsa秘钥,将id_rsa.pub拷贝至git服务器authorized_keys中
[root@bjyz-mawmd-test03 lost+found]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)?
[root@bjyz-mawmd-test03 lost+found]# ll ~/.ssh/
-rw------- 1 root root 1675 Dec 28 16:04 id_rsa
-rw-r--r-- 1 root root 418 Dec 28 16:04 id_rsa.pub
clone
[root@bjyz-mawmd-test03 lost+found]# git clone git@cp01-mawmd-rd02.epc.baidu.com:/home/git/store/sample.git
Initialized empty Git repository in /home/wwwroot/sample/.git/
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@bjyz-mawmd-test03 wwwroot]# ll
total 4
drwxr-xr-x 3 root root 4096 Jun 14 14:21 sample
git库迁移
把现有仓库导出为裸仓库至git服务器上
git clone --bare ssh://caiguangyun@icode.baidu.com:8235/baidu/mawmd/goodcoder goodcoder.git