Linux搭建git私人仓库

Linux作服务器,windows作为客户端,都需要安装git

  • 1、Linux安装git(我这里用的Ubuntu的系统) Centos 用yum安装
    apt-get -y install git
    • 安装完毕检查
      git --version
      服务器创建git用户,来管理git服务器
      useradd git
      passwd git
    • Windows安装git自行百度安装
      Git bash 可以运行Linux命令 ls mkdir touch vim 等等 也可以运行shell脚本(.sh) 模拟的Linux环境在这里插入图片描述
  • 2、服务器创建Git仓库
    • 设置/home/zhou/git/cd.git 为Git仓库
    • 把Git仓库所属权修改给刚刚创建的git用户
    • 创建仓库文件
      mkdir -p /home/zhou/git/cd.git
    • 初始化仓库
      git init --bare /home/zhou/git/cd.git
    • 修改仓库cd.git所属权
      cd /home/zhou/git
      chown -R git:git cd.git/
      -3、Windows克隆git仓库
    • 随便在一个文件夹下面运行 Git Bash Here(Windows版本Git)
    • 自己电脑公钥和私钥已经配置好了,用另一台电脑先用密码拉取和提交代码演示
      在这里插入图片描述
      这里需要输入密码,刚刚创建的管理Git仓库的git用户,上库的时候也需要密码,这样操作比较麻烦
      在这里插入图片描述
  • 4、Windows客户端创建SSH公钥和私钥
    ssh-keygen -t -ras -C "邮箱@163.com"
    在这里插入图片描述
    公钥和私钥创建完成
    • id_rsa 私钥
    • id_rsa.pub 公钥 复制到服务器
  • 5、Linux服务器配置RSA
    • Linux服务器配置rsa文件在 ‘/etc/ssh/sshd_config’
    • vim 编辑配置文件 放开这三行的注释
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
    • 保存并重启 不同Linux系统shh重启不一样,不同的自行百度
      /etc/init.d/ssh restart
    • 在/home/git 目录下创建 .ssh
    • 修改.ssh文件夹的所属权
      chown -R git:git .ssh
  • 6、将Windows客户端的公钥导入 /home/git/.ssh/authorized_keys
    • 方法一
      • 先将id_rsa.pub 文件上传至Linux服务器
        cat id_ras.pub >> /home/git/.ssh//authorized_keys
    • 方法二 在Git Bash中 重定向进去,这个操作需要密码
      ssh git@Linux机器IP 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    • 操作完毕,去Linux /home/git/.ssh/authorized_keys 查看是否存在文件
      修改 /home/git 下的 .ssh文件夹和authorized_keys文件权限
      chomd 700 .ssh
      chomd 600 authorized_keys
  • 7、Windows客户端再次连接clone远程仓库和push文件上库操作,无需输入密码
    提交时可能会报这个错误
    • 解决办法

    • 因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。

    • Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:

    $ git config --global core.autocrlf true
    
    • Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:
    $ git config --global core.autocrlf input
    
    • 这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF
    • 如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:
    $ git config --global core.autocrlf false
    
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章