Git部署:如何回滚到我的应用程序以前的稳定版本?

Git部署:如何回滚到我的应用程序以前的稳定版本?,git,workflow,rollback,git-checkout,Git,Workflow,Rollback,Git Checkout,我正在认真考虑使用git作为我的部署方法。目前我独自工作,所以冲突在我的情况下不是问题。假设我按照以下步骤复制了一个连接本地主机、bitbucket帐户和live server存储库的工作流。我一直在想,如果有什么东西坏了,我可以安全地回到稳定的版本 我唯一能想到的就是为未来的每个版本创建一个分支,然后签出到它。如果它不好或我有问题,我会结帐回到主人。如果可以,我会在几天后将该分支与master合并,然后创建一个新分支 这合乎逻辑吗?我已经搜索了很多关于这个主题的文章,但是我真的不能理解其中的大

我正在认真考虑使用git作为我的部署方法。目前我独自工作,所以冲突在我的情况下不是问题。假设我按照以下步骤复制了一个连接本地主机、bitbucket帐户和live server存储库的工作流。我一直在想,如果有什么东西坏了,我可以安全地回到稳定的版本

我唯一能想到的就是为未来的每个版本创建一个分支,然后签出到它。如果它不好或我有问题,我会结帐回到主人。如果可以,我会在几天后将该分支与master合并,然后创建一个新分支

这合乎逻辑吗?我已经搜索了很多关于这个主题的文章,但是我真的不能理解其中的大部分,因为它们是针对中型团队的,所以工作流程是不同的。我也曾在一些网站上问过同样的问题,但一直没有得到答案,很可能是因为这是一个愚蠢的问题,我真的不知道。但我在这里。在我的情况下,版本控制将如何工作?

请阅读本文:


在我们公司,我们使用这种方法,这非常有帮助。基本上这是你已经说过的,但这也考虑到了你有“主”分支用于发布构建和“开发”分支,你将所有功能分支合并到其中,当你准备发布新的发布时,你只需将开发分支合并到主并创建新的标记。正如我所说,阅读这篇文章,因为它帮助我创建了稳定的分支模型。

首先,我假设您在部署任何特定分支时都没有问题

在具有某种专业性(和预算)的环境中,将有一个暂存环境,在该环境中,新代码将在投入生产之前部署(在您的情况下,是live server存储库)。一般来说,生产环境中的版本应该总是稳定的(提示:如果不稳定,您应该在它投入生产环境之前发现它,良好的测试实践在这里也会很有帮助)

现在,假设您最终不得不为生产“热修复”master,而常规的解决方案恰好不足,一种方法是:

  • 重置——很难执行所需的提交
  • 重置(软)到主控头(现在您的工作副本仍将来自所需提交)
  • 暂存当前工作副本(即git add.)并提交
  • 注:请注意,我不经常这样做,我希望你们也不要这样做,尤其是在《大师》中


    另一个警告:这不考虑数据库备份,您需要为这些备份制定其他应急计划

    如果在将“开发”合并到“主机”后出现问题,您将如何将“主机”恢复到合并前的状态?是否有任何类型的“恢复到以前的标记”命令?我还在读,这确实是一篇很酷的文章。嗯……数据库是这类事情的一个问题。尽管我使用的是Laravel,它对DB有一种类似于版本控制的方法。但无论如何,我明白你的意思。我真的很感谢你抽出时间:-)你应该在做了“git add”之后也这么说吗提交更改时,他需要执行“git push--force”,因为远程回购仍然有旧版本的代码,需要重写?@Ray当时我不确定我是否想推荐强制推送(必须在前面加上更多警告),但他可能自己会想到这一点