git倉庫與專案原始碼分離

瘋流人物發表於2020-10-31

之前是將專案原始碼放到git倉庫下面,後面想一下覺得有點麻煩,若是在伺服器端切換分支的話是直接將伺服器端的專案程式碼切換到對應的分支下的程式碼,這個時候若是有人訪問網站可能會出現問題,所以我就想有沒有辦法將git倉庫與專案原始碼分離,不將原始碼放到git倉庫下面,git倉庫不存放原始碼,只做版本控制,後面也確實找到了對應的方法,是用hook鉤子,現在說一下具體的配置方法:

1.在伺服器端專案檔案根目錄下新建一個同級目錄,

例如專案檔案是在 /home 目錄下的檔名為demo,那麼在linux執行下面操作

cd /home

mkdir git && cd git    //這裡新建一個git資料夾並切換到目錄下

mkdir demo.git  && cd demo.git     //這裡新建一個資料夾做git倉庫

git init --bare            //git倉庫初始化,--bare的意思是建立裸倉庫

初始化後我們可以看到自動生成一堆檔案,

ls        //檢視檔案

cd hooks             //到hooks檔案目錄下

cat > post-receive      //按回車輸入下面的內容

#!/bin/sh

git --work-tree=/home/demo --git-dir=/home/git/demo.git checkout -f /*/home/demo為專案檔案的地址,/home/git/demo.git為git倉庫地址*/

輸入完成後回車並按ctrl+D儲存,然後輸入

chmod +x post-receive

2.本地

若是已經有git專案了,直接新增一個倉庫地址就行了

git remote add vps ssh://xxxxx@xxxxxxxx/home/git/demo.git //vps是遠端庫的名字,xxxxx@xxxxxxxx是伺服器地址,後面的是倉庫的地址

以後推送的時候推送到vps這個遠端倉庫下,就會將更新推送到我們設定的路徑,也就是遠端專案檔案目錄

git push vps master

這樣就可以實現git倉庫與專案原始碼分離了,git倉庫只做版本控制,不會影響到專案原始檔,我們也可以分離出一個域名用於測試,測試沒問題後再將專案更新推送到線上的專案中

相關文章