我有一个Rails 4应用程序,直到现在,已经部署得很好。我使用Gitlab.com私人回购。我没有改变任何东西,并且出于某种原因,从8个月前开始提交旧的提交作为"最新的#34;。
正确的分支(master
)推送了最新的更改。 Capistrano正在部署主分支。在浏览器中,主分支具有我正确显示的最新更改。我可以继续推送其他提交(我的git配置文件很好)。
当我部署时,Capistrano出于某种原因认为master上的最新提交是8个月之前的256f303
,而不是e948bfa
。如果我转到刚刚部署在远程服务器上的目录Cap,则代码已过时(与256f303
之后的代码状态一致)。
Cap命令( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.3 /usr/bin/env cat /home/project/deploy/current/REVISION 2>/dev/null )
返回旧提交SHA 256f303
。
be cap production deploy revision=<full e948bfa sha>
时,它没有效果。仍然得到256f303
。$deploy/repo
目录无效。它会创建一个新的repo
目录,问题仍然存在。repo/packed_refs
文件,使refs/heads/master
指向e948bfa...(etc)
而不是256f303...(etc)
,会显示消息error: refs/heads/master does not point to a valid object!
production.rb
中,设置set :branch, ENV.fetch('REVISION', 'master')
(而不是set :branch, 'master'
)无效。与set :branch, ENV.fetch('branch', 'master')
相同。我绝对感到困惑。我不确定为什么会这样,我已经尽我所能来弄清楚256f303
来自何处。这是一个GitLab问题吗?或者在我的某个地方?
编辑:没有太多的更新。我最后再回来了,我不确定是不是这样做了,但现在已经整理好了。我不觉得这是一个真正的答案,但你去了:)。