2012-09-10 90 views
0

我有一個Drupal站點有三個enviornments:混帳推製作大師

  1. 開發 - 對VM
  2. 英鎊運行基於流浪漢,開發環境 - 反映了生產環境。在生產現場部署代碼之前,
    它部署在英鎊,以確保一切正常
  3. PROD - 直播現場

版本控制系統是飯桶。 完成編碼後,我將代碼提交到git存儲庫並將代碼推送到原始主設備,即git commit -m <msg>git push origin master。之後,它被部署爲git push staging master。對於生產,它是git push production master

幾周前,我不得不直接對生產服務器進行一些代碼更改。現在,無論什麼時候我試圖推動任何東西來推動正常的推送週期,它都會失敗。我可以在dev上編碼,推​​送到起始主和分段,但不能刺激。

當我嘗試推,我得到如下結果:

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://[email protected]<site-name>.com/shared/repositories/dlc_drupal.git ! [remote rejected] master -> master (hook declined) 
error: failed to push some refs to 'ssh://[email protected]<sitename>.com/shared/repositories/dlc_drupal.git' 

可能是什麼問題,我怎麼能改正我的督促混帳推?

任何幫助將不勝感激。另外,我可能錯過了一些細節,因爲我不確定它們是否相關。請告訴我。

回答

0

它可能不是生產服務器上的快速合併。我不知道你是如何設置檢查,但

git checkout -f 

將強制它簽出。根據你的情況,這可能是也可能不是你想要的。基本上,由於您在服務器上進行了直接更改,該git存儲庫不再與其他正常流相同。您應該嘗試在本地保存這些更改,將其重置到服務器上,然後再次嘗試推送。

+0

無論生產直接進行了哪些更改,也都在原始主數據中。基本上,內容方面,生產和回購都是一致的。但是,我現在不能推動生產。目前,我在我的開發中進行了更改,測試它們,將它們提交到git並手動將其複製到prod。 – Rahul

+0

你說「你現在不能推動生產」---但它會給你任何類似的信息,比如「爲了防止你失去歷史,非快進更新被拒絕」?看來你可以使用'git push production + master'來強制推送,如此處所述http://stackoverflow.com/questions/5667476/git-non-fast-forward-rejected – jkeesh

+0

我得到以下內容:計數對象:148,完成。 增量壓縮使用多達8個線程。 壓縮對象:100%(85/85),完成。 書寫對象:100%(126/126),1.20 MiB | 169 KiB/s,完成。 共有126個(delta 52),重用107(delta 35) remote:error:packfile 無法訪問 remote:錯誤:hook拒絕更新refs/heads/master 要ssh:// admin @ .com/shared/repositories/dlc_drupal.git ! [remote rejected] master - > master(hook refused) 錯誤:無法將某些文件推送到'ssh:// admin @ .com/shared/repositories/dlc_drupal.git' – Rahul