如何在本地使用git并推送到远程服务器

Ped*_*TFC 1 git drupal

我想使用git来管理我的开发,集成测试和生产环境.我环顾四周但似乎无法找到一个如何简单的解释(例如Git - 推送到远程存储库并没有完全做到这一点).我想要做的一个非常简短的解释:

  • 我在笔记本电脑上掌握了我的代码库,因为这是我完成大部分工作的地方.
  • 我在1and1上托管我的网站.在那里,我有两个站点,生产站点和集成测试站点.
  • 我想设置git所以我可以在笔记本电脑上安装两个遥控器,比如siteprod和siteint.
  • 每当我有一个我想测试的分支时,我想从我的笔记本电脑上推它,比如使用"git push siteprod newproductionversion"(我相信你明白了).

我已经通过使用git --init(注意没有--bare!)在1and1上创建存储库并使用ssh设置遥控器来实现了一些目标.但是我必须将receive.denyCurrentBranch设置为忽略,一旦我推动,我必须通过登录1and1服务器来检出分支.我必须为集成环境重复一遍.

这看起来非常笨拙,但我确信我的用例并不常见.这样做有明智的方法吗?

adh*_*ris 6

如果您具有与服务器的ssh连接,则可以将git remote直接添加到服务器上的存储库.就像是:

git add remote production sshUser@example.com:/path/to/repo/.git
Run Code Online (Sandbox Code Playgroud)

然后,部署,

git push production branch
Run Code Online (Sandbox Code Playgroud)

也就是说,您可能不应该从git存储库提供生产代码.更好的方法是 Web根目录之外设置一个存储库,并使用post-receive钩子将代码复制到Web根目录.这似乎在此概述: 使用Git push部署项目