zoukankan      html  css  js  c++  java
  • 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来管理公钥。

  • 相关阅读:
    Fixed Function Shader
    sqlserver 2014 数据库作业 通过脚本创建注意事项
    块存储、文件存储、对象存储意义及差异
    程序员如何成为架构师
    那些编程水平很高的程序员是怎么练成的?
    在ASP.NET Core调用WebService
    .net core 调用webservice同步方法
    Sqlserver中如何创建链接服务器
    JWT实现鉴权
    JWT原理实现代码
  • 原文地址:https://www.cnblogs.com/-mrl/p/11050860.html
Copyright © 2011-2022 走看看