2016-01-28 54 views
3

幾小時前github.com停機了大約一個小時。我試圖git push,它說成功,但此消息也走過來:github發生故障後Git推送失敗

remote: Unexpected system error after push was received. 
remote: These changes may not be reflected on github.com! 
remote: Your unique error code: asdfasdfasdfasdfasdfasdfasdfasda 

現在,當我嘗試重新推動它,它說,更新失敗,由於分支我推到具有不同的文件,但github上的是舊文件。無論如何,我可以強制它推動? :S我試圖編輯一些文件來使文件再次變得不同,但它說的是相同的東西。

+0

如果您確定自己擁有最新版本(並且其他版本不是您發散的實際原因),您需要在您的推送選項中添加「--force」 –

+0

我得到了同樣的錯誤,遠程回購實際上已經收到了文件(我可以再次拉它們),但它們不會顯示在Web界面上(除非您手動將丟失的修訂版本ID放入URL中)。 – Thilo

回答

5

Github使用post-receiveserver-side hooks來觸發緩存失效對於您瀏覽網站所看到的大多數網絡資源。

https://github.com/{user}/{repo}/commits/{branch}是這些意見

如果你去https://github.com/{user}/{repo}/commit/{HASH}你會看到提交是存在的,在適當的分支之一。

中斷可能會在那裏留下很多懸空的緩存作業。

所以,一個簡單的方法來強制post-receive鉤觸發後提交一個簡單的變化和git push吧,否則等待Github的人重新處理他們所有的緩存文件(這可能不會發生)。

如果您很好奇,您還可以查看他們的webhooks實現瞭解更多詳情。

+0

「中斷可能會導致很多懸空的緩存工作。」有意義的是,GitHub剛剛失敗了,但現在它已經恢復了。即使它已經恢復,這個問題可能會保留一段時間的背景資料,所以可能只是等待一會兒,然後再試一次。 –

+0

我現在也有這個問題....所以我只是等一會兒?我添加了第二個提交,並以相同的方式失敗... –

+0

它現在正在工作。 –

-3

這裏有一個快速的解決辦法,我發現:

echo "bar" >> foo.txt 
git add foo.txt 
git commit -m "Add foo.txt" 
git push origin master 
git rm foo.txt 
git commit -m "Remove foo.txt" 
git push origin master 

這正確刷新提交歷史我github.com回購。這應該是安全的,但在嘗試之前絕對要對本地代碼進行備份。

+2

歡迎來到Stack Overflow,@Abin Ravi!當您在其他地方找到答案時,只需將鏈接發佈爲評論,而不是複製粘貼到新答案中。 http://stackoverflow.com/a/35052290/222356 – ericsoco