【问题标题】:Git production and development server workflowGit生产和开发服务器工作流程
【发布时间】:2015-11-05 23:05:20
【问题描述】:

我不确定我打算在生产服务器和开发服务器之间创建的 git 工作流是否是正确的做法。

这就是我的想法:开发发生在本地计算机上,提交是git push 到开发服务器。一旦稳定版本可用,生产服务器就会从开发服务器执行git pull。生产中的任何意外结果都可以通过git revert 恢复

这是正确的做法吗?如果是这样,我如何使现有代码位于开发服务器上,远程仓库?据推测,它对于生产和本地都是远程的,因为它们 pullpush

【问题讨论】:

    标签: git workflow


    【解决方案1】:

    这是正确的做法吗?

    是的,这听起来完全合理。

    如果是这样,我如何使现有 位于开发服务器上的代码,远程仓库?想必, 当他们拉和推时,它对生产和本地都是远程的。

    假设您通常通过 ssh 访问您的 repo,如下所示:

    brian@local$ ssh brian@development
    brian@development$ cd /home/brian/code
    brian@development$ git status
    

    然后您可以使用git clone ssh://brian@development:/home/brian/code 克隆此代码。从那时起,您应该能够git pushgit pull 来往开发。

    【讨论】:

      【解决方案2】:

      这是正确的做法吗?如果是这样,我如何使现有代码位于开发服务器上,远程仓库?据推测,它对于生产和本地都是远程的,因为它们 pullpush

      Git 只是一个工具,没有任何正确的方式 你如何使用它正确的方式。 p>

      根据你的情况:

      • 有 3 个服务器(或者说 3 个 git repo)
      • 本地 --push-to--> 开发
      • 生产

      所以你可以先构建 Development git repo,然后克隆到 Production 和 Local:

      user@development $ setup_git_repo.sh
      user@local $ git clone ssh://user@development:/path/to/git/repo
      user@production $ git clone ssh://user@development:/path/to/git/repo
      

      或者你可以通过http克隆:

      user@development $ setup_git_repo.sh
      user@local $ git clone http://development.server/git/repo
      user@production $ git clone http://production.server/git/repo
      

      然后你有 3 个 git repo。本地 git repo 和生产 git repo 是从开发 git repo 克隆出来的。

      最后,您可以在本地进行日常编码并推动开发。 使用新标签对开发和发布进行一些测试。 在生产服务器上运行git pull 以获取最新代码。

      【讨论】:

      • 初始化存储库和克隆存储库的顺序难道不重要吗?您可以git init --bare 某个服务器上的存储库,然后将其克隆到生产、登台和本地服务器上。还是我误解了你的概念?我认为您的意思是具有“开发”功能的登台系统/服务器?
      猜你喜欢
      • 2010-12-05
      • 2017-08-05
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 2014-11-25
      • 2013-11-19
      相关资源
      最近更新 更多