我使用源代码在本地工作在一个目录中。我有两个分支: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