【问题标题】:git + deploy to productiongit + 部署到生产环境
【发布时间】:2012-08-03 17:35:14
【问题描述】:

我对 git 还很陌生,想知道部署到生产环境时的最佳实践吗?我有一个 master 分支,它总是有最新版本的生产代码。当我开始生产时(现在我手动进行),我输入git pull 并获取最新的。但它会尝试合并代码,有时会产生冲突等。有没有办法强制它按原样采用 master 分支中的任何内容?

我尝试阅读很多关于这方面的内容,包括:

Best solutions to deploy from git to production?

http://posheika.net/?p=136

【问题讨论】:

  • 你可能想看看我在这里学到的关于安全地将 git 项目部署到远程网络服务器而不将你的 repo 暴露给你的网络服务器的知识:stackoverflow.com/a/18941021/470749

标签: git


【解决方案1】:

尝试使用git fetch origingit reset --hard whatever_deployment_branch_you_use 而不是拉动。

这将使存储库不会尝试合并代码,因此您将避免服务器上的冲突。

【讨论】:

    【解决方案2】:

    一个简单而可靠的方法是拥有一个master 分支,您的所有开发都在其中进行。如果您想更准确地反映分支的用途,可以选择将此分支重命名为 development

    然后,您将拥有另一个 production 分支,该分支始终反映您的生产环境中当前正在运行的内容。每当您想部署到生产环境时,您都可以签出 production 分支并运行 git merge master。您还可以在master 中的提交 SHA 上应用标签,以便更轻松地查看您部署的时间点。

    通过这种方式,您可以在开发设备上修复所有合并冲突,在生产设备上,您只需运行git pull,它就会从production 获取最新的。

    Here 是上述流程的更高级(并且可能更复杂)的替代方案。如果您有多个开发人员和/或需要更复杂的发布周期,请使用此选项。

    【讨论】:

    • 问题是我一直在做git pull,它在尝试合并分支时不断产生冲突。
    • 听起来是因为您在生产服务器上有未提交的更改,其中演员 Frost 给出了最好的建议。如果您曾经直接在生产环境中进行更改(通常是个坏主意),请确保提交它们,然后将它们合并回您的开发分支。
    • ?我从来没有在生产方面发生过变化……只是我得到的分支有很多变化。当我执行git pull 时,它会尝试接受这些更改并与当前生产中的内容合并。
    • 但我每次都做git reset --hard,以防在git pull之前。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2013-10-15
    • 2021-04-14
    • 2018-11-26
    相关资源
    最近更新 更多