我是GIT的新手。我有一个生产网址和另一个作为开发网址,我想推送新代码。
开发:http://development.myrepo.something
制作:http://production.myrep.something
现在我通常在不同的电脑上工作。我需要一个设置,我可以将我的所有工作从不同的计算机推送到开发网址,当我感到满意时,我会在生产网址中推送相同的内容。
我做得太多了
在两个URL上复制完全相同的文件。此时,两个URL都会在broswer中给出相同的结果。
在两个目录中执行git init并将它们作为git repos。
所以,在我想到的时候,我现在可以在当地工作,然后推向开发回购,当满意时我可以再次推向生产回购。
但它不起作用,因为无论何时推,它都会显示错误,因为回购不是裸露的。
那我现在该怎么办?
我正在考虑遵循此Link
的分支方法但问题是我想在开发分支中查看/测试服务器上的工作。使用上面链接中提到的方法,我只能在合并完成后才能看到。
请提出一些建议并指出正确的方向。
答案 0 :(得分:2)
在您的服务器上有一个裸存储库作为生产代码的存储,并在它附近的某个地方设置第二个非裸存储库,它将从裸存储库中拉测试。不要'试着反对git。
我的想法是,如果您使用存储库实际上编写代码,那么您就不应该推送它。
因此,首先要为代码创建一个repo:
$ cd /path/to/dir/with/dev/repo
$ git init --bare
这是您将用作dev代码的中央存储的repo,这个将通过http
或其他方式从外部可见。您可以在工作回购中将其配置为远程“dev”(或“origin”)。
所以,再次,您刚刚配置的repo是一个push / pull-only repo,您实际上并没有在其中工作:您在其克隆中编写代码然后推送您的更改。即使您碰巧在同一台机器上工作,也只需克隆:
$ cd /path/to/work/dir
$ git clone /path/to/dir/with/dev/repo
完成后再推送您的更改。
这同样适用于您的“生产”回购。您为生产代码存储设置了一个裸存储库,然后如果要对其进行测试或在服务器上进行部署,则只需将其克隆到同一服务器上的非裸存储库即可。我有一个回购测试。
如果您希望在推送到repo时自动部署代码,有很多教程解释如何通过hoos实现此目的(这里是one of them)。< / p>