[group test ]
#组名称
members = root@vm1 #密钥用户名
writable = test #仓库名称 #Git
commit -a -m “user add” #Git push
Writable 可读写
readonly 只读 对于同一个仓库设置不同的权限, 如 : [group test
] Writable =
test 仓库名 Members =
dongsheng@bjcjser01 [group
test2] Readonly
= test 仓库名 Members =
pengfei@bjcjser01
如果在git
push的时候,遇到错误“ddress 192.168.0.77 maps to bogon, but
this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!”,解决为修改/etc/hosts文件,将ip地址与主机名对应关系写进去就可以了。
7. 初始、增加及使用项目git-test
(客户端 )
#cd /git-repo
#mkdir test
#cd test
说明:如果在执行
git push origin master 的时候,提示以下错误:
error: src
refspec master does not match any.
error: failed
to push some refs to 'git@192.168.0.77:pro2.git'
这是由于项目为空的原因,我们在项目目录里新创建一个文件。经过->add -> commit -> push 就可以解决了
Ps: $ touch a.txt $ git add a.txt 在添加文件的目录中, 输入 git
add 。 $ git commit -a -m 'add
a.txt' $ git push
如果在git
clone的时候遇到“
error: cannot
run ssh: No such file or directory - cygwin git”错误,则表示本机没有安装ssh命令。安装方法请参考:http://blog.haohtml.com/archives/13313
8. 客户端增加其他成员公钥到系统中:通过添加用户的公钥到keydir目录即可
1》.生成密钥与公钥 [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 |
|. |
+-----------------+ [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) cd /root/gitosis-admin/keydir/
cp /home/dev1/.ssh/id_rsa.pub ./dev1.pub 3》.创建新项目,将dev1用户添加进去 cd /home/gitosis-admin/ vi
gitosis.conf
[group project2]
writable = project2
members = dev1 4》.保存修改,并将修改提交到git server上 git add .
git commit -a -m 'add new user dev1'
git push 5》.在客户端测试(用户为dev1)
创建项目project2目录(一定要和项目名称一样) mkdir
/data/project2
cd /data/project2
git init
touch test.txt
git add . git
config --global user.email "you@example.com"
git config --global user.name "Your Name" git
commit -a -m 'init project2'
git remote add origin git@xxx:project2.git
git push origin master git
pull
可以看到已经提交成功了!
如果客户端为Linux的话,在执行git pull的时候,出现 Permissions
0644 for ‘/root/.ssh/id_rsa’ are too open.
等错误显示了,只要把权限降到0600就ok了.这种情况下一般是属于将另其它地方的公钥直接放在其它客户端用的原因。
输入命令 chmod 0600 ~/.ssh/id_rsa
然后再执行相应的命令即可.这样就可以密钥登陆了.