使用 GIt 同步部署代碼(一) - 搭建 GIt 裸倉庫同步代碼

導語

上文介紹了怎麼經過 PhpStorm 使用 FTP 同步代碼文件,到目前爲止使用了近四個月。這種方式和 Git 互有利弊,整體來講仍是 Git 更方便一些,下面記錄下使用 Git 同步以及部署的過程。服務器版本爲 CentOS 7.2,本地爲 Mac。html

流程

首先說明一下開發以及部署的流程。這個項目目前只是我的練習,因此不涉及團隊合做。在通過下面的改造後,開發流程以下laravel

  1. 本地開發,環境使用的是 Homestead
  2. Git 上傳代碼到服務器的裸倉庫中
  3. 裸倉庫使用 Git Hook 自動部署到正式目錄中
  4. 在正式目錄中將代碼手動上傳到 GitHub

本地開發完成後,執行一次 git push 便可自動部署代碼到正式目錄,正式目錄中再執行一次 git push 上傳到 GitHub。
實際在最後一步的時候,也可使用 Git Hook 自動上傳代碼到 GitHub,也就是整個流程只須要一次 git push 便可。🤔,暫時不了。
下面的過程會分爲已有代碼和無代碼兩種狀況進行。git

服務器添加 Git 用戶

  1. 參考以前寫的建立新用戶,建立 git 用戶
  2. 禁用 git 用戶使用 shell 登錄,編輯 /etc/passwd,將 git:x:1001:1001::/home/git:/bin/bash 修改成 git:x:1001:1001::/home/git:/usr/bin/git-shell
  3. 使用證書設置免密,參考這篇文章中的生成密鑰、服務器配置,將本地的 id_rsa.pub 寫入到 /home/git/.ssh/authorized_keys 文件中

創建 Git 裸倉庫

  1. 新建目錄,用於存儲全部 Git 裸倉庫。我是在根目錄下新建了 git 目錄,根據狀況本身選擇
  2. 設置目錄全部者爲 git,chown git:git git
  3. 在 git 目錄下,初始化一個裸倉庫 git init --bare my_laravel.git--bare 參數即爲指定裸倉庫git init
  4. 修改全部者爲 git,chown -R git:git my_laravel.git

本地克隆代碼

分爲兩種狀況,一種是本地已有代碼,也就是我目前的狀況;另外一種是沒有,從倉庫中 clone 下來新建。github

已有代碼

  1. 在代碼目錄中,初始化 git,git init
  2. 添加全部文件,git add .
  3. 提交 git commit -m 'init'
  4. 將代碼與遠端倉庫創建鏈接,git remote add origin git@you_servier:/you_git_path/my_laravel.git
  5. push 代碼,git push origin master
  6. 設置分支跟蹤 git branch --set-upstream-to=origin/master master

服務器中的裸倉庫中已經有了記錄shell

git log

新建項目

  1. 直接 clone 就能夠了,git clone git@you_server:/you_git_path/my_laravel.git
  2. 而後就是正常的 addcommitpush

服務器中裸倉庫的記錄也是正確的segmentfault

git log

結語

至此服務端與本地的代碼同步已經完成。餘下的問題,下篇繼續。bash


參考資料:搭建Git服務器如何將一個已存在的目錄轉換爲一個 GIT 項目並託管到 GITHUB 倉庫服務器

相關文章
相關標籤/搜索