【问题标题】:Capistrano, Git, and Rails. (Reset hard head)Capistrano、Git 和 Rails。 (重置硬头)
【发布时间】:2013-07-14 03:31:13
【问题描述】:

所以我一直(愚蠢地)直接在实时服务器上进行更改,而不是在我的本地计算机上进行更改并进行部署。这搞砸了我的部署。所以现在我要做“git reset --hard”。

在我的远程服务器上,我有一个 project.git 目录(用于存储库……顺便说一句)和一个项目目录(用于我的实际应用程序)。

但是当我尝试运行“git reset --hard”时,它告诉我我不在工作树上。如果我进入 config 并将 bare 更改为 false ......它会说同样的事情。

想法?

【问题讨论】:

  • 据我所知,从您的计算机再次运行 cap deploy 将覆盖您拥有的版本,这样您的服务器上的应用程序将与本地计算机上的状态相同。
  • 这就是问题所在:这并没有发生。因为我是在主服务器上进行编辑(而不是在本地进行然后部署),所以它以某种方式搞砸了分支。所以 Cap deploy 并没有更新所有文件。
  • 好吧,你为什么不直接删除服务器上的应用程序文件夹,然后重新部署,因为它会从零开始,数据库和 gems 保持不变,你只需将代码移动为你会第一次部署。
  • 我最终可能会删除所有那些无用的“发布”......但现在我太担心版本跟踪了。事实上,我什至不必担心它,因为无论如何我都会切换服务器。所以下次我进行部署时,它应该只是“工作”。
  • “我太担心版本跟踪” - 你不必这样做,它会部署带有所有 git 历史记录的新应用程序。

标签: ruby-on-rails-3 git capistrano


【解决方案1】:

找到了更好的解决方案。 :)

首先我在本地服务器上做了一个git reset --hard(因为远程服务器只是一个裸存储库。)

然后我做了一个git commit -a,它告诉我没有更改,但有未跟踪的文件。

所以我做了一个git add . 来添加所有未被跟踪的文件。

最后我又跑了git commit -agit push

这使用所有新文件更新了我的存储库,然后cap deploy 按预期运行。

【讨论】:

    猜你喜欢
    • 2010-10-25
    • 2016-04-23
    • 1970-01-01
    • 2011-07-28
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多