Git:localhost>远程开发>远程生产

时间:2010-12-09 14:22:39

标签: git

我是Git的新手,我不明白如何实现以下目标。 有2台服务器:

  1. 本地主机
  2. Linode.com VPS
  3. 基本上,我想:

    1. 在我的localhost上编写新代码。
    2. 将新代码推送到开发中 它可以在VPS上的版本 测试(在dev.domain.com或类似的东西 这一点。)
    3. 如果新代码有效,请按下它 到了生产版本 相同的VPS。应该可以访问 domain.com。
    4. 实现我想要的正确方法是什么?

3 个答案:

答案 0 :(得分:5)

有几种方法可以做到这一点。如果你能够在你的VPS上运行ssh服务器,那么这很简单。

在localhost上的git存储库中,您将设置两个git遥控器。它们将具有相同的主机但具有不同的路径(一个远程用于dev路径,一个用于prod路径)。

git remote add prod ssh://[user@]host.xz[:port]/path/to/prod/repo.git/
git remote add dev ssh://[user@]host.xz[:port]/path/to/dev/repo.git/

如果您设置了ssh公钥/私钥访问权限,那么您不必每次都输入密码。

一旦您将所需的更改提交到localhost上的repo,那么您将执行此操作以将它们推送到开发环境:

git push dev    # remote named dev points to dev repository

验证完成后,您可以将它们推送到生产阶段(从您在localhost上的仓库):

git push prod   # remote named prod points to prod repository

如果要在推送到dev和prod(除了你想要应用的修补程序之间)之间更改localhost上的git repo,那么有很多方法可以解决这个问题:

  • 分支或标记,然后推送到dev并推送而不是你的主分支(由于其他原因建议无论如何)。
  • 在localhost上制作一份repo副本并推送它。
  • 在进行更改之前
  • 分支并推送分支而不是主分支。
  • 登录VPS,然后从开发者推送(或拉动)到prod repo

这不包括你选择的一半,但可能足以让你思考。

答案 1 :(得分:0)

建议:(这不完全是你想要的)

1)使用“普通的git工作方式”..拥有本地和远程存储库。

2)将本地存储库代码拉到VPS上进行测试

3)将远程存储库代码拉到VPS上进行生产

答案 2 :(得分:0)

即使您在本地更改分支,PhpStorm也可以自动同步sftp上的更改。

在Windows系统上,这是迄今为止我发现的最佳解决方案。在unix / mac系统上,您可以将rsync与监视文件系统更改的实用程序结合使用。