8bq

光辉岁月

git下添加新项目及用户

新创建一个git项目并允许开发者使用.

1.生成密钥与公钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[dev1@bogon ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dev1/.ssh/id_rsa):
Created directory '/home/dev1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dev1/.ssh/id_rsa.
Your public key has been saved in /home/dev1/.ssh/id_rsa.pub.
The key fingerprint is:
99:4c:e4:00:56:a9:a2:e2:68:20:8c:60:90:2e:b9:b8 dev1@bogon
The key's randomart image is:
+--[ RSA 2048]----+
| . ooo.. |
|o . .+ |
|o. . o |
|+o. . o o |
|Bo . S |
|O. |
|*. |
|Eo |
|. |
+-----------------+
1
2
[dev1@bogon ~]$ ls .ssh
id_rsa id_rsa.pub

2.将公钥上传到git server的gitosis-admin/keydir/ 目录里,文件名就是是用户名

注意:我这里是在同一台机器上测试的,不同的机器可以用scp命令来实现上传文件,主要pub文件上传到keydir目录下才可以(scp ~/.ssh/id_rsa.pub root@192.168.0.77:/tmp/sxf.pub)

1
2
cd /root/gitosis-admin/keydir/
cp /home/dev1/.ssh/id_rsa.pub ./dev1.pub

3.创建新项目,将dev1用户添加进去

1
cd /home/gitosis-admin/
1
2
3
4
vi gitosis.conf
[group project2]
writable = project2
members = dev1

4.保存修改,并将修改提交到git server上

1
2
3
git add .
git commit -a -m 'add new user dev1'
git push

5.在客户端测试(用户为dev1)

创建项目project2目录(一定要和项目名称一样)

1
2
3
4
5
mkdir /data/project2
cd /data/project2
git init
touch test.txt
git add .
1
2
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
1
2
3
git commit -a -m 'init project2'
git remote add origin git@xxx:project2.git
git push origin master

可以看到已经提交成功了!