安装好Ubuntu 或者 centos
在装系统的时候设置的用户名不一定要设置成git
开始搭建git环境
在root下进行
下载安装三个工具命令
apt-get install git-core openssh-server openssh-client
安装python-setuptools 后面有命令需要这个工具包的命令
sudo apt-get install python-setuptools
安装配置gisosis
gitosis是Git下的权限管理工具,通过一个特殊的仓库(gitosis-admin.git)对Git权限进行管理
mkdir tools
cd tools
git clone http://github.com/res0nat0r/gitosis.git
安装gitosis
cd gitosis
python setup.py install
git 安装好了 查看 git --version
=====================================================================
创建新账号
sudo useradd -d /home/git -m git
sudo useradd -m git
指定账户密码
passwd git
修改登录方式
sudo usermod -s /bin/bash git
添加到超级用户组
命令 visudo
或
命令 vim /etc/sudoers
在 root ALL=(ALL:ALL) ALL 这一行下面加入一行:
git ALL=(ALL:ALL) ALL
生成管理员端的公钥
在另外一个Linux上执行 ssh-keygen -t rsa 一直按回车到完成
自动生成查看.ssh文件: id_rsa id_rsa.pub known_hosts
将管理员生成的公钥 id_rsa.pub , 拷贝到gitosis服务器下使用
初始化gitosis, 进入到拷贝过来的id_rsa.pub所在目录
生成管理员库 gitosis-admin.git
sudo chmod 777 id_rsa.pub
sudo -H -u git gitosis-init < id_rsa.pub
这里之后自动生成 gitosis repositories
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
从服务器 克隆gitosis-admin.git
后续添加账号和权限都在这个,克隆的gitosis-admin.git 中执行
git clone git@192.168.0.254:gitosis-admin.git
得到文件夹 gitosis-admin: gitosis.conf keydir
gitosis.conf 是gitosis的配置文件,用于配置用户和用户所拥有的权限
keydir 是所有组成员的公钥
测试管理员账号clone一下,这里是在客户端:
git clone git@192.168.1.252:gisosis-admin.git
成功后查看文件
test@ubuntu:~/gitosis-admin$ ls
gitosis.conf keydir
gitosis.conf是gitosis的配置文件,用于配置用户和权限。
keydir/ 是所有组成员的公钥
查看 cat gitosis.conf
test@ubuntu:~/gitosis-admin$ cat gitosis.conf
[gitosis]
[group gitosis-admin] 库名
members = test@ubuntu 权限配置 是用户的 id_rsa.pub 重命名后的公匙名称:test@ubuntu.pub
writable = gitosis-admin 库名
test@ubuntu:~/gitosis-admin$
如果clone成功,后续就可以用这个账号添加新的权限,
修改后用 git status 查看修改的文件,git add filename , git commit -m "提交记录"
如同提交代码一样。
其他参考
Ubuntu下搭建repo服务器(一): 配置gitosis - EastJason - 博客园
=====================================================================
新加用户操作:
在客户端,你的编译服务器上创建 ssh key
ssh-keygen -t rsa 直接回车到完成
然后id_rsa.pub 重命名一下,复制到 git服务器目录:
/git/repositories/gitosis-admin.git/gitosis-export/keydir/
test@ubuntu.pub
username@ubuntu.pub
配置权限
修改 /repositories/gitosis-admin.git/gitosis.conf
[group test] //库名称
members = test@ubuntu username@ubuntu //这里客户端的.pub名称
writable = test //库名称
最后将 cat username@ubuntu.pub
将key复制写入到文件 /git/.ssh/authorized_keys
如果你是在管理员账号下clone了gitosis-admin.git 这个库,那么你可以这个管理员clone的文件下修改,然后像提交代码一样提交。
=====================================================================
备份代码库
git clone --mirror git@192.168.1.100:test.git test-new.git
如同拉取代码一样,只不过是装在了重命名的新.git库里
备份到本地就是如此操作,如果你有拉取权限的话。
最好是通过管理员账号来拉取,统一不出错
=====================================================================
查看当前提交用户名和邮箱
git config user.name
git config user.email
修改全局 提交用户名和邮箱
git config --global user.name
git config --global user.email
修改当前 提交用户名和邮箱
git config user.name 你的目标用户名
git config user.email 你的目标邮箱名