我使用源代碼在本地工作在一個目錄中。我有兩個分支:master和dev。我想推動我的專用服務器每個分支到自己的目錄,產生一個生產目錄和另一個開發目錄。接下來,我可以配置Nginx來訪問子域上的每一個,等等。獨立的git目錄(master/dev)
我試圖在我的(唯一)project.git/hooks/post-receive中的post-receive文件上使用這段代碼。
#!/bin/bash
while read oldrev newrev ref
do
branch=`echo $ref | cut -d/ -f3`
if [ "master" == "$branch" ]; then
git --work-tree=/home/myself/project/site --git-dir=/home/myself/myproject/myproject.git checkout -f
echo 'Changes pushed live.'
fi
if [ "dev" == "$branch" ]; then
git --work-tree=/home/myself/myproject/site-dev --git-dir=/home/myself/myproject/myproject.git checkout -f
echo 'Changes pushed to dev.'
fi
done
我嘗試提交dev分支的更改。我推動它成功(「推動開發變化」)。但是我的遠程服務器上的dev目錄根本沒有改變(與master分支相同)。
請問您能幫我嗎?
謝謝!
Git不是發佈工具。您可以將其用於發佈內容,但效果不佳。我建議你考慮一下發布工具。 – Schwern
確實。每當發生變化時,您應該從存儲庫中獲取發佈進程*,而不是相反。這將繼續以多種不同的方式咬你。 – eis
好的,謝謝,我會去經典的方式(推拉目錄):) – Zoloom