之前是將項目源碼放到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 //按回車輸入下面的內容
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倉庫只做版本控制,不會影響到項目源文件,我們也可以分離出一個域名用於測試,測試沒問題後再將項目更新推送到線上的項目中。