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
    
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章