linux下部署git服務器


我這里用的是redhat7.4, 直接開始吧.

環境

服務端: Redhat7.4 + git(version 1.8.3.1) IP:192.168.137.168
客戶端: win7 + git (version 2.19.1)

Git

server:

[root@localhost gittest.git]# git --version
git version 1.8.3.1

我這里是有的, 沒有的話

yum install git -y

client:

官網地址: https://git-for-windows.github.io/

服務器操作

  • 新建git用戶與賦予密碼
useradd git
passwd git

注:這里的密碼我用1234

  • 為服務器創建一個git用的文件夾(git倉庫)
mkdir /usr/local/gittest.git

注:這個目錄可以隨便建(項目在哪就放哪), 只要后面授權給git用戶管理就行

  • 初始化
git init --bare /usr/local/gittest.git
  • 授權
chown -R git:git /usr/local/gittest.git

注:這個就很簡單了,在/usr/local/gittest.git下會看到生成了目錄

客戶端操作

注:這一波用的不是powershell或者cmd, 確定客戶端的git已安裝.

  • 簡介

  • 新建目錄
hp@hp-PC MINGW64 /d/wamp64
$ mkdir gittest_gitbash

hp@hp-PC MINGW64 /d/wamp64
$ ls
gittest/  gittest_gitbash/  www/
c
hp@hp-PC MINGW64 /d/wamp64
$ cd gittest_gitbash/
hp@hp-PC MINGW64 /d/wamp64/gittest_gitbash
$ pwd
/d/wamp64/gittest_gitbash
  •  clone項目
git clone git@192.168.137.168:/usr/local/gittest.git

 注:這個就很容易理解了, 將服務器上面的文件夾下的東西拉取到本地(就是這個目錄下d:\wamp64\gittest_gitbash)

  • 自動彈出提示
The authenticity of host '192.168.137.168 (192.168.137.168)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.
Are you sure you want to continue connecting (yes/no)? yes

成功!

  • 發現 
 此時會在本地C:\Users\用戶名\.ssh 下生成文件 known_hosts
  •  創建公鑰私鑰
ssh-keygen -t rsa -C "郵箱"

注:此時C:\Users\用戶名\.ssh 下會多出兩個文件 id_rsa 和 id_rsa.pub

 

  • 服務器Git打開rsa認證
[root@localhost gittest.git]# cd /etc/ssh/
[root@localhost ssh]# ls
moduli      sshd_config         ssh_host_ecdsa_key.pub  ssh_host_ed25519_key.pub  ssh_host_rsa_key.pub
ssh_config  ssh_host_ecdsa_key  ssh_host_ed25519_key    ssh_host_rsa_key
[root@localhost ssh]# vim sshd_config
  •  打開三個注釋
RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

  • 重啟sshd
systemctl stop sshd.service
systemctl start sshd.service
  •  在git用戶目錄新建.ssh目錄
mkdir /home/git/.ssh
  •  授權
chown -R git:git /home/git

  • 將客戶端公鑰上傳到服務器端git用戶目錄.ssh
cd C:\Users\用戶
ssh git@192.168.137.168 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

注:這里要切換到.ssh的上一級目錄, 因為要將authorized_keys文件當前內容上傳到服務器中

  •  再看一下服務器上面的目錄

  • 客戶端再次clone遠程倉庫
git clone git@192.168.137.168:/usr/local/gittest.git

結尾

  • 禁止git用戶ssh登錄
vim /etc/passwd
將
git:x:1004:1005::/home/git:/bin/bash
改為
git:x:1004:1005::/home/git:/bin/git-shell

  

Git服務器搭建完畢!

 

后續

  • 刪除遠程分支點
git remote remove origin

  • 新建遠程分支點
origin 為遠程倉庫別名  后面http 為遠程倉庫地址
git remote add origin git@192.168.137.168:/home/git/data/git/learngit.git

  • 本地庫提交到遠程分支(上傳)
git push <遠程主機名> <本地分支名>:<遠程分支名>
git push learngit master:origin

  • 本地分支拉取遠程分支(下載)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM