0

我有一个包含三个环境的 Drupal 站点:

  1. dev - 在 VM 上运行的基于 vagrant 的开发环境
  2. stg - 反映生产环境。在将代码实时部署到生产环境之前,
    它已部署在 stg 上以确保一切正常
  3. 产品 - 现场

版本控制系统是 git。编码完成后,我将代码提交到 git 存储库,并将代码推送到原始主机git commit -m <msg>,即git push origin master. 之后,它被部署到 staging as git push staging master。对于生产来说,它是git push production master.

几周前,我不得不直接对生产服务器进行一些代码更改。现在,每当我尝试通过正常的推送周期来推动任何东西时,它都会失败。我可以在 dev 上编码,推​​送到 origin master 和 staging 但不能推送到 prod。

当我尝试推送时,我得到以下结果:

Counting objects: 148, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (85/85), done.
Writing objects: 100% (126/126), 1.20 MiB | 169 KiB/s, done.
Total 126 (delta 52), reused 107 (delta 35)
remote: error: packfile <path-to-packfile> cannot be accessed
remote: error: hook declined to update refs/heads/master To ssh://admin@<site-name>.com/shared/repositories/dlc_drupal.git ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'ssh://admin@<sitename>.com/shared/repositories/dlc_drupal.git'

可能是什么问题,我该如何纠正我的 prod git push?

任何帮助将不胜感激。另外,我可能错过了一些细节,因为我不确定它们是否相关。请告诉我。

4

1 回答 1

0

它可能不是您的生产服务器上的快速合并。我不知道你是如何设置结帐的,但是

 git checkout -f 

将强制它检查。根据您的情况,这可能是也可能不是您想要的。基本上,由于您在服务器上进行了直接更改,因此该 git 存储库不再与其他存储库处于相同的正常流程中。您应该尝试在本地保存这些更改,在服务器上重置它们,然后再次尝试推送。

于 2012-09-10T17:55:08.220 回答