如何在 Git 中设置远程目录,我可以在其中本地将阶段分支推送到远程并查看暂存服务器上的实时更改,例如 stage.example.com?
我的想法(我离开 SVN 的部分原因)是我可以(本地)维护 3 个不同的“主要”分支,如下所示:
- master - 用于本地开发,工作目录
- stage - 应该与登台服务器目录(远程)同步
- 直播- 这应该是可公开访问的网站(远程)
我的想法(以及其他人声称的可能)是我可以从我的本地计算机维护这些远程“站点”,而不必经常登录到我的远程服务器 shell 并运行svn update
(在我当前的 svn 工作流程中,我需要做这一切时间......)或者当然在我的 Git 工作流程中运行git pull
在遥控器上。
如何设置远程目录,以便我可以在本地将我的stage
分支推送到staging remote server
并立即查看(例如) stage.example.com
上的更改?
然后,一旦stage
一切正常并经过测试,我就可以在本地push
远程live
进行我stage
在现场网站上测试过的这些更改。
这甚至可以完成还是我在这里得到了根本不适合用 Git 完成的疯狂想法?
如果这很重要,这里有一些关于我的本地和远程服务器的统计信息:
远程服务器:Dreamhost(共享账号) 远程 Git 版本:1.7.1.1 远程 GIT 客户端:shell 本地电脑:Mac Pro (Snow Leopard 10.6.6) 本地 Git 版本:1.7.2.3 本地 GIT 客户端:Tower.app // git-tower.com
另外,到目前为止,我还没有成功尝试过以下工作流程:
- 在遥控器上创建一个
--bare
Git 存储库(这样我就可以从任何地方访问它) - 将此远程存储库克隆到本地目录并使用 Git Tower 应用程序对其进行管理
- 在当地工作
master (HEAD)
scp -r
--bare
将git repo 从远程服务器复制到我的远程实时域stage.example.com
- 将远程添加到本地工作副本,然后尝试推送到
origin/stage
显然这不起作用,但我不知道为什么或如何做得更好。
来自 SVN 背景,我是 Git 新手,但看过很多教程(Peepcode 和 ThinkVitamin),但仍然不知道如何设置它。