1. 程式人生 > >在伺服器(CentOS)上使用 git 部署專案

在伺服器(CentOS)上使用 git 部署專案

文章目錄

在伺服器(CentOS)上使用 git 部署專案

主要流程:

  • 本地 git push 至 git 倉庫更新程式碼。
  • 伺服器上 git pull 從 git 倉庫獲取更新。

這裡的 git 倉庫有兩種方式實現:

  • 使用第三方 gitlab 儲存與管理程式碼。
  • 在伺服器上搭建自己的 git 倉庫來儲存與管理程式碼。

使用 gitlab 網路可能會比較慢:D

方式一:使用 gitlab 倉庫

  1. 服務端使用 yum 全域性(-y)安裝 git 。
$ yum -y install git
  1. 客戶端(mac)安裝 git。

如果你的 mac 還沒有安裝過 git,只需要開啟終端,輸入 git,系統會自動提示你安裝 git ~

  1. 客戶端(win)安裝 git。

在 windows 上需要下載 git 安裝包,這裡提供官網的地址(git官網下載),安裝即可。

  1. 檢視 git 安裝版本:
$ git --version

mac 上開啟終端(command + 空格,搜尋“終端”);

win 上開啟 git 客戶端;

  1. 服務端與客戶端建立 git 使用者。
# 配置使用者名稱與郵箱
$ git config --global user.name "yourname"
$ git config --global user.email "youremail"

# 生成 ssh 金鑰
$ ssh-keygen -t rsa -C "youremail"

# mac 檢視 ssh 金鑰
$ cat ~/.ssh/id_rsa.pub

# win 的金鑰檔案在 /User/yourname/.ssh/id_rsa.pub

~/.ssh/id_rsa.pub 檔案內容全部複製到 gitlab.com [setting -> SHH-keys -> key] 中,儲存。然後在本地檢視是否連線成功:

$ ssh -T [email protected]
  1. 在 gitlab 上建立專案,複製 ssh 地址,服務端客戶端上克隆這個地址就可以了。

方式二:在伺服器上搭建 git 倉庫

  1. 服務端使用 yum 全域性(-y)安裝 git 。
$ yum -y install git
  1. 建立服務端的使用者:git。
# 在 /usr/home/ 建立使用者 git 的目錄
# 這個目錄等會還會儲存來自客戶端的 ssh-keys
$ cd /usr/home
$ useradd git
$ passwd git
  1. 配置使用者 git 的許可權。
# 禁用 git 使用者 shell 登陸
$ vi /etc/passwd

# 修改為如下,一般在最後一行:
git:x:1000:1000::/home/git:/usr/bin/git-shell
  1. 建立一個 git 倉庫。
# 在 /usr/local/git 下建立 test 專案
# 建立一個目錄 git 作為所有的專案資料夾
$ cd /usr/local
$ mkdir git

# 建立 test 專案倉庫
$ git init --bare test.git
  1. 分配 git 倉庫的許可權。
$ chown -R git:git test.git
  1. 伺服器上加入客戶端的 git 金鑰。
# 本地檢視金鑰複製檔案所有內容
$ cat ~/.ssh/id_rsa.pub

# 服務端開啟 /home/git/.ssh/authorized_keys 檔案
# 將複製內容貼上進去,儲存退出
$ vi /home/git/.ssh/authorized_keys

/home/git/.ssh/ 的 .ssh 目錄需要自己建立。

  1. 客戶端克隆伺服器上的專案。
$ git clone [email protected]:/usr/local/git/test.git

輸入 git 使用者的密碼就可以了。

  1. 服務端克隆專案。
# 進入你的專案資料夾
$ cd /data
$ git clone [email protected]:/usr/local/git/test.git

以後更新程式碼就在 /data/test 目錄下 git pull 一下。

附錄:git 常用命令

  • git status 檢視當前變更的檔案。
  • git add . 將所有變更本地快取。
  • git commit -m '更新說明' 新增本次更新的說明。
  • git push 推送本地的更新至遠端分支。
  • git pull 獲取遠端分支的的更新。