• centos搭建git服务器(转)


    一:git服务安装

      1.安装git相关组件

    1. [root@gitserver ~] yum -y install git

      2.创建git用户

    1. [root@gitserver ~] groupadd git && useradd git -g git

      3.创建git用户授权登录用户文件authorized_keys

    1. [root@gitserver ~] mkdir -p /home/git/.ssh/
    2. [root@gitserver ~] touch /home/git/.ssh/authorized_keys
    3. [root@gitserver ~] chmod 700 /home/git/.ssh
    4. [root@gitserver ~] chmod 600 /home/git/.ssh/authorized_keys
    5. [root@gitserver ~] chown git.git -R /home/git/.ssh #所属用户这里设置很关键哦

      4.限制git用户权限,禁止shell登录
    修改/etc/passwd 下git用户 git:x:1002:1002::/home/git:/bin/bash 为:

    1. git:x:1002:1002::/home/git:/usr/bin/git-shell

    授权了/usr/bin/git-shell 所以还需要拷贝对应文件到git用户目录

    1. [root@gitserver ~] cp -R /usr/share/doc/git-1.8.3.1/contrib/git-shell-commands /home/git/
    2. [root@gitserver ~] chown git.git -R /home/git/git-shell-commands/
    3. [root@gitserver ~] chmod 755 /home/git/git-shell-commands/*

    二:创建git仓库

      选定一个目录作为Git仓库,假定是/home/gitdata/cnyunwei.git

    1. [root@gitserver ~] cd /home
    2. [root@gitserver home] mkdir gitdata
    3. [root@gitserver home] cd gitdata
    4. [root@gitserver gitdata] git init --bare cnyunwei.git #--bare 参数是创建空库
    5. [root@gitserver home] chown git.git -R /home/gitdata/ #必须设置为git用户,否则无法写入文件

    三:创建本地用户公钥,并导入authorized_keys:

      使用Git Bash 生成密钥:
    下载安装: https://git-scm.com/download/win 
    打开Git Bash (类似于一个CMD窗口)

    1. ssh-keygen -t rsa -C "email@email.com" #邮箱这里可以选填,全部敲回车即可生成密钥

    密钥文件在C:Usersusrname.ssh 下,将id_rsa.pub 的文件添加到服务器authorized_keys 文件中即可。

    四:关联本地仓库和远程空仓库(这里是通过Git Bash 命令方式关联)

      git是采用SSH传输,如果服务器的SSH端口不是22 就需要调整URL地址

    1. cd e:/cnyunwei #进入本地项目文件夹目录
    2. git remote add origin ssh://git@192.168.31.10:22000/home/gitdata/cnyunwei.git #关联本地仓库到远程空仓库

      默认SSH端口的情况下使用:

    1. git remote add origin git@192.168.31.10:/home/gitdata/cnyunwei.git

      如果出现下面的报错,是没有本地仓库的意思,先生成本地仓库再关联即可。

    1. fatal: Not a git repository (or any of the parent directories): .git
    2. git init
    3. git remote add origin ssh://git@192.168.31.10:22000/home/gitdata/cnyunwei.git

      测试一下提交到远程仓库:

    1. git add --all
    2. git commit -m "初始化"
    3. git push -u origin master

      git服务器的安装到此完成,如果在提交文件到远程仓库时提示如下错误,请检查服务器上git仓库所属用户和用户组是否为git 。

    1. remote: error: insufficient permission for adding an object to repository database ./objects
    2. remote: fatal: failed to write object

    如果遇到protocol error: bad line length character: This问题

    有可能是你修改了/etc/passwd中git为/sbin/nologin改成和本文一样的即可

    转自https://www.cnyunwei.cc/archives/1072

  • 相关阅读:
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 47 全排列 II(二)
    Java实现 LeetCode 47 全排列 II(二)
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/7654651.html
Copyright © 2020-2023  润新知