gpt4 book ai didi

git - 使用 git 设置测试和生产服务器

转载 作者:行者123 更新时间:2023-12-04 04:53:34 24 4
gpt4 key购买 nike

我是 GIT 的新手。我有一个生产 url 和另一个作为开发 url,我想将新代码推送到其中。

发展 :http://development.myrepo.something

生产 :http://production.myrep.something

现在我通常在不同的计算机上工作。我需要一个设置,在这个设置中我可以将我所有的工作从不同的计算机推送到开发 url,当我满意时,我在生产 url 中推送相同的内容。

到目前为止我做了什么

  • 在两个 URL 上复制完全相同的文件。此时,两个 URL 在浏览器中都给了我相同的结果。
  • 在两个目录中执行 git init 并将它们设为 git repos。
  • 在本地 git bash 中,我从某个目录的生产 URL 克隆。
  • 然后我添加了一个这样的远程源 - git remote add production ......//服务器路径在这里
  • 现在我像这样从这个 repo 中提取了 - git pull production ,结果就像我想要的“UP TO DATE”。现在从两个分支中 pull 出来给我相同的信息,这是完美的。

  • 所以在这一点上,我想,我现在可以在本地工作,然后推送到开发仓库,当满意时,我可以再次推送到生产仓库。

    但是它在我推送时不起作用,它向我显示错误,因为 repos 不是空的。

    那我现在该怎么办?

    我正在考虑遵循此 Link 的分支方法

    但问题是我想在开发分支中查看/测试服务器上的工作。使用上面链接中提到的方法,我只能在执行 merge 后才能看到。

    请照亮并指出我正确的方向。

    最佳答案

    在您的服务器上有一个裸存储库作为生产代码的存储,并在它附近的某个地方设置第二个非裸存储库,该存储库将从裸存储库中提取用于测试。不要试图对抗 git。

    这个想法是,如果您使用存储库在其中实际编写代码,那么您不应该推送到它。

    所以,首先你为你的代码创建一个仓库:

    $ cd /path/to/dir/with/dev/repo
    $ git init --bare

    这是您将用作开发代码的中央存储的存储库,可以通过 http 从外部看到该存储库。或者什么。您可以在工作存储库中将其配置为“dev”(或“origin”)远程。

    因此,同样,您刚刚配置的 repo 是一个 push/pull-only repo,您​​实际上并没有在其中工作:您在其克隆中编写代码,然后推送您的更改。即使你碰巧在同一台机器上工作,只需克隆:
    $ cd /path/to/work/dir
    $ git clone /path/to/dir/with/dev/repo

    完成后将更改推回。

    这同样适用于您的“生产”存储库。您为生产代码存储设置了一个裸存储库,然后如果您想测试它或在服务器上部署它,您只需将它克隆到同一服务器上的非裸存储库——现在您有一个用于测试的存储库。

    如果您希望在推送到存储库时自动部署代码,有许多教程解释了如何使用 hoos 实现这一点(这里是 one of them)。

    关于git - 使用 git 设置测试和生产服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17081647/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com