zl程序教程

您现在的位置是:首页 >  系统

当前栏目

centos 搭建git服务器

2023-09-14 08:56:56 时间

首先服务器需安装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来管理公钥。