前文配置好了裸倉庫和本地同步,剩下的就是倉庫和正式目錄之間的自動部署。html
一樣是分爲兩種狀況,一種是有代碼,個人狀況不只是有代碼,並且遠端還有 GitHub;另外一種是無代碼,新建。nginx
git remote add git_library /you_path/my_laravel.git
pull
、push
測試一下是正常的。一個插曲,由於編輯器還開着 FTP 同步,開始老是出錯😓。clone
代碼到正式目錄 git clone /you_paht/my_laravel.git
hooks
目錄下是有不少示例的 hooks
目錄下新建 post-update
文件,編輯完成後設置權限 chmod +x post-update
, 文件以下#!/bin/sh unset GIT_DIR DIR_ONE=/usr/local/nginx/html/myLaravel/ #正式目錄 cd $DIR_ONE git pull git_library master #新建項目 remote 默認是 origin
通過測試沒有問題。
由於我是在已有的項目中進行操做,遇到各類問題。一個問題是提示沒有權限去修改文件。同步使用的是 git 用戶,代碼文件的全部者是 www-data。最終的解決辦法是將 git 添加近 www-data 用戶組 usermod -a -G www-data git
,同時正式目錄執行 chmod -R g+w
。laravel
本覺得很簡單的流程,沒想到過程一波三折。主要問題是在已有的項目中進行部署,若是是新項目會簡單不少。git
參考資料:用 Git 鉤子進行簡單自動部署、git hook實現代碼自動更新。shell