• 当前位置: 首 页 > 教育百科 > 学历/技能 > 正文

    Linux下搭建自己的Git服务器

    :2022年01月27日
    CSDN

    近期上了Redmine以后、系统集成了Git的联动功能、于是萌生了搭建内网仓库的想法、特此记录一下:

    1. 安装git

    先是git源码编译

    https://www.kernel.org/pub/software/scm/git/

    下载最新版本git(.gz)到/usr/local

    安装

    tar -zxf git-2.2.1.tar.gz 
    cd git.2.2.1make prefix=/usr/local/git allmake prefix=/usr/local/git install

    源码编译是不如 yum install git-all 方便,但是版本可以更新点,笔者用的阿里CentOS6.5,对应的git版本只能到1.7.2

    自己装的git没有在系统PATH环境里,用修改 /etc/profile 的方法手动贴入

    vim /etc/profile#找到 PATH=/usr/local/php/bin:$PATH 这行修改为PATH=/usr/local/php/bin:/usr/local/git/bin:$PATH#保存,退出shell重新连接就生效了

    或者直接用yum

    yum -y install git

    2. 创建用户git

    groupadd git
    adduser git -g git12

    3. 创建authorized_keys文件

    cd /home/git
    mkdir .ssh
    chmod 700 .ssh
    touch .ssh/authorized_keys
    chmod 600 .ssh/authorized_keys
    cd /home
    chown -R git:git git1234567

    要注意的是文件权限和所属用户。

    (后续的git clone如果需要密码,很有可能是git用户没有访问authorized_keys文件的权限)

    4. 客户端创建密钥并上传

    看清楚了,要在客户端运行如下命令。

    ssh-keygen -t rsa -C "your_email"1

    该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。

    将id_rsa.pub中的内容写到服务器的authorized_keys文件中。

    如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥。

    5. 创建git仓库

    为了方便管理,所有的git仓库都置于同一目录下,假设为/home/gitrepo,

    cd /home
    mkdir gitrepo
    chown git:git gitrepo123

    接下来,创建我们的第一个git仓库:sample.git,

    cd gitrepo
    git init --bare sample.git12

    最后一步,把仓库所属用户改为git。
    chown -R git:git sample.git
    到此,git服务器搭建完毕。

    PS:

      以后每创建一个新的仓库,记得最后一步操作: 修改仓库所属用户为git。

    转自:CentOS搭建git服务器 http://www.cnblogs.com/gattaca/p/6252416.html


    1. 查看系统用户组

    -d:指定字段的分隔符,默认的字段分隔符为“TAB”;
    -f:显示指定字段的内容;
    cut -d: -f1 /etc/group
    2. 查看系统用户

    cut -d: -f1 /etc/passwd
    3. clone仓库

    git clone git@your_gitServer_ip:/home/gitrepo/sample.git
    4. push已有仓库

    // 以master分支示范
    git checkout master
    git remote rm origin
    git remote add origin git@your_gitServer_ip:/home/gitrepo/sample.git
    git push -u origin master

    同步代码库代码到WEB目录

    cd /home/gitrepo/sample.git/hooks/
    vi post-receive
    输入
    #!/bin/bash
    git --work-tree=/data/wwwroot checkout -f12345

    PS:客户端push到服务器时,会把代码同步到wwwroot目录下,前提是:git用户有wwwroot文件夹写入的权限

    文章知识点与官方知识档案匹配,可进一步学习相关知识

    CS入门技能树Git入门Git简介283 人正在系统学习中

    来源:https://blog.csdn.net/u012323576/article/details/76209784

    [编辑:宋聪乔 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 安装 先是 源码 编译 https
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证