centos 搭建git服务器
首先服务器需安装git
参考链接:https://www.cnblogs.com/-mrl/p/11045998.html
搭建git服务器
1.新建git仓库主目录,可以选择创建在/data目录下。也可以选择放置在/var目录下【mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录】
mkdir -p /data/gitrepos
2.新建访问用户,下面新增zhangsan,lisi两个git用户,添加后用户会生成/home/zahngsan家目录;
useradd zhangsan
useradd lisi
或【适用于使用密码登录的情况】
seradd -M zhangsan //-M 表示不创建家目录
3.给用户设置密码,分别设置登陆密码,拉取代码和提交代码需要提供密码;
passwd zhangsan
passwd lisi
4.变更git仓库的所有者到任何人 ,赋予nobody就是把权限给了所有人;
chown -R nobody:nobody /data/gitrepos
5.修改git仓库的读写权限,这样子git仓库就能读写了,否则会报错拒绝提交的;
chmod -R 755 /data
6.修改用户shell登陆权限(禁止客户端shell登录),找到最后头的zhangsan、lisi,把冒号后面的/bin/bash改成/usr/local/git/bin/git-shell,就是你的git安装目录下的/bin/git-shell,然后保存退出。【每次都想输入密码则可忽略】
vi /etc/passwd
如:
7.添加用户的SSH公钥,免密码登录【使用密钥对来增强安全性,并且免去输密码的麻烦,如需每次输入密码登录该步骤可省去】。【每次都想输入密码则可忽略】
创建公钥目录
mkdir -p /home/zhangsan/.ssh
切换目录后创建密钥存放文件
cd /home/zhangsan/.ssh
vi authorized_keys
将从zahngsan、lisi的电脑的C:/users/用户名/.ssh目录下找到id_rsa.pub,分别设置到对应的用户的.ssh目录中authorized_keys文件中;
(PS1:如果张三没有id_rsa.pub文件的话,那就用cmd执行git config --global user.name "zahngsan" git config --global user.email "张三的能接收邮件的邮箱",然后执行 ssh-keygen,然后按三下回车【PS:它先要求你确认保存公钥的位置(.ssh/id_rsa),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。】,就有那个文件了)
(PS2:也可是使用以下方法获取id_rsa.pub文件
下载git客户端安装好后右键选择Git GUI Here->Help->Show SSH Key
)
命令截图如下:
验证git服务器
1.linux git服务器创建裸仓库目录 创建裸仓库目录,test为项目名
mkdir -p /data/gitrepos/test
2.linux git服务器创建裸仓库 ,git服务器初始化仓库的时候一定要加上--bare,否则你的仓库不能推送代码,test为项目名;
git init --bare /data/gitrepos/test/test.git
3.linux git服务器修改git仓库的读写权限,这样子git仓库就能读写了,否则会报错拒绝提交的,如果push出错有可能这里的权限问题;
chmod -R 777 /data/gitrepos/test
4.在window安装git客户端,打开git bash切换到指定目录,输入git clone zhangsan@服务器IP:/data/gitrepos/test/test.git【PS:如git clone zhangsan@192.168.0.119:/data/gitrepos/test/test.git】,
然后按照提示输入密码就能clone项目;【PS:设置了SSH公钥免密码登录则不需要输入密码】
5.在window然后增加个readme.txt或者其他文件,然后随意添加文字内容,然后在git bash切换到test目录,执行git add readme.txt, git commit -m"新增readme文件", git push -u origin master,就看执行push以后是否成功就行了。
linux 命令如下:
git bash命令如下:
把用户添加到用户组【可不设置】
1.新建访问用户组: groupadd developer(创建developer用户组,你也可以改成其他的);
2.变更git仓库的所有人为developer用户组: chgrp -R developer /data/gitrepos/test, 这是修改权限给git用户组的。
3.添加用户到用户组: usermod -G developer zhangsan, usermod -G developer lisi
如果团队很小,把每个人的公钥收集起来放到服务器的authorized_keys
文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。