公司有这个东西,之前一直没研究过这个是啥,原来就是git的一个权限管理工具,可以用来搭建git服务器,当然gitlab更好用
具体请参考:服务器上的 Git - Gitosis
本篇文章参考:
服务器上的 Git - Gitosis
gitosis使用笔记
一、获取安装包
root@qqq:~
root@qqq:~
root@qqq:/data
Cloning into 'gitosis'...
remote: Enumerating objects: 661, done.
remote: Total 661 (delta 0), reused 0 (delta 0), pack-reused 661
Receiving objects: 100% (661/661), 118.12 KiB | 157.00 KiB/s, done.
Resolving deltas: 100% (430/430), done.
二、安装
2.1安装前要安装依赖包
root@qqq:~
2.2开始安装
root@qqq:/data/gitosis
三、把代码仓库放到/data/uscwifi目录下面,这一步创建一个账户,家目录为/data/uscwifi,根据个人喜好,我这里创建uscwifi用户:
root@qqq:~
root@qqq:/data
> -s /bin/bash \
> -c "git version control" \
> -d /data/uscwifi \
> uscwifi
root@qqq:/data
uscwifi:x:999:999:git version control:/data/uscwifi:/bin/sh
root@qqq:/data
四、切换到uscwifi用户,上传我的公钥,初始化Gitosis
root@qqq:~
uscwifi@qqq:~$ pwd
/data/uscwifi
david@DESKTOP-IKJKR9H:~$ scp .ssh/id_rsa.pub root@10.0.3.109:/data/uscwifi
uscwifi@qqq:~$ gitosis-init < id_rsa.pub
uscwifi@qqq:~$ ls
gitosis id_rsa.pub repositories
五、客户端操作Gitosis
5.1、试着连一下,没有问题,说明gitosis认出了该用户身份,但由于没有运行任何git命令所以切断连接
root@qqq:~
The authenticity of host '10.0.3.109 (10.0.3.109)' can't be established.
ECDSA key fingerprint is SHA256:xVKdJNr4Qbfoe/Sasm20qXZsNMmBSOFvo4lMUOJSkyk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.3.109' (ECDSA) to the list of known hosts.
PTY allocation request failed on channel 0
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to 10.0.3.109 closed.
5.2、克隆Gitosis的控制仓库到本地
root@qqq:~
root@qqq:~
root@qqq:~/test
Cloning into 'gitosis-admin'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
Receiving objects: 100% (5/5), 696 bytes | 696.00 KiB/s, done.
remote: Total 5 (delta 0), reused 0 (delta 0)
root@qqq:~/test
gitosis-admin
root@qqq:~/test/gitosis-admin
gitosis.conf keydir
root@qqq:~/test/gitosis-admin
david.pub
六、将运维同事tom加入控制权限组
gitosis.coonf是用来设置用户、仓库和权限的控制文件
keydir目录保存每个人的公钥
6.1、他的key放到keydir
root@qqq:~/test/gitosis-admin/keydir
root@qqq:~/test/gitosis-admin/keydir
6.2、修改conf文件
gitosis-admin该团队拥有成员david和tom,对gitosis-admin仓库具有读写权限
6.3、推到仓库
root@qqq:~/test/gitosis-admin
root@qqq:~/test/gitosis-admin
root@qqq:~/test/gitosis-admin
root@qqq:~/test/gitosis-admin
[master b7c376f] add tom to gitosis-admin
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 keydir/tom.pub
root@qqq:~/test/gitosis-admin
Counting objects: 5, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 760 bytes | 760.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To 10.0.3.109:gitosis-admin.git
6d26da5..b7c376f master -> master
6.4、tom拉取仓库测试,没有问题
[tom@client ~]$ git clone uscwifi@10.0.3.109:gitosis-admin.git
正克隆到 'gitosis-admin'...
The authenticity of host '10.0.3.109 (10.0.3.109)' can't be established.
ECDSA key fingerprint is SHA256:xVKdJNr4Qbfoe/Sasm20qXZsNMmBSOFvo4lMUOJSkyk.
ECDSA key fingerprint is MD5:14:ab:81:92:1f:ff:5e:ca:59:5e:88:d9:fb:06:20:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.3.109' (ECDSA) to the list of known hosts.
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 10 (delta 0), reused 0 (delta 0)
接收对象中: 100% (10/10), done.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)