在生产环境中,我维护两个网站 - beta和release。每个网站通过软链接指向不同的目录(例如)
beta_public_html -> /home/scott/myapp/trunk/public
public_html -> /home/scott/myapp/branches/1.2.3/public
我是一位长期使用svn的用户,现在要转向git。我习惯于通过svn update进行部署,并更改新分支上的软链接,这些都很简单。
现在我要使用git。我仍然需要两个软链接(这是一个使用Passenger的Rails应用程序),但现在我希望它们指向两个不同的git分支(例如“beta”和“release”)。并且我希望能够通过git push(或git pull)更新它们。
问题1:我不确定最佳的方法是什么。
我开始做的方式是只是部署到两个不同的远程,例如:
git push ssh://scott@x.com/home/scott/myapp-beta beta
git push ssh://scott@x.com/home/scott/myapp-release release
但是这样做不起作用,因为默认情况下push不会更新工作树。
所以我进入远程目录并运行git reset --hard第一次,它会拉取工作树。但是我再次推送,无法使新的推送显示出来 - 它仍停留在最初的状态。
(顺便说一句,注意我似乎无法推送到“myapp-beta.git” - 这会失败,我必须推送到目录名称。我担心这是问题的一部分,但我不知道我在这里做错了什么。)
所以,如果问题1的答案是我的方法正确,请问第2部分:我正在做什么有问题?如果有钩子应该使用,有人可以指引我吗?
(对于问题1的回答是“运行这七个手动步骤”的回答将不是一个非常有用的答案,因为svn checkout + ln -s是两个步骤。)
谢谢。我想回到编写代码。