我從本地機器丟失了一些代碼,並且我認爲我有github存儲庫中的對象,問題是,它們是懸掛對象,我不知道如何獲取它們,有沒有辦法獲取它們?我可以從遠程存儲庫獲取所有git對象嗎?
下面是這一切是如何發生的(包括我在它的愚蠢):
我有一個包含一些巨大的SQL數據的存儲庫(回購大約300M),因爲該倉庫大小製作git clone
慢我去提前和deleted the huge files。
git filter-branch 'git rm ...'
之後我修復了依賴於已刪除數據的測試,並編寫了一些代碼,我將這些更改和git push --force origin
提交到github中。
當我試圖用這個「新」存儲庫重新綁定時,它只是感覺到它的表面。 git filter-branch 'git rm ...'
改變了第一次提交,所以一切都變成了衝突。
因爲我不能重新定義我決定嘗試一些不同的東西,我從我的本地機器中刪除了存儲庫,並從舊的存儲庫中刪除了我的備份到github中。
這就是我失去了一些工作。
我認爲的對象仍然在github上,因爲他們對如何刪除敏感數據的文章說:
本文告訴您如何使在您的GitHub的任何分支或標籤不可達的敏感數據提交庫。 但是,需要注意的是,那些提交可能仍然可以通過在GitHub的緩存視圖中的SHA-1哈希以及通過引用它們的任何請求請求,直接在您的存儲庫的任何克隆或分支中訪問。您無法對存儲庫中的現有克隆或叉形式進行任何操作,但可以聯繫支持以永久移除所有存儲庫的緩存視圖,並通過違規提交來拉取請求。
這是一個私人回購,github中只有一個克隆(我用'git push --force'做了一個備份覆蓋)。我的同事沒有一個人從「修剪過的」存儲庫中取出或拉出,因爲我們有太多的重組衝突(一切)。所以,基本上github確實刪除了懸掛的對象,我沒有運氣? –
由於你做了一個強制推送,你覆蓋了github上的相應分支。它應該具有相同的狀態。隨意通過將您的remote-repo克隆到不同的目錄來檢查。除此之外,我猜GitHub會頻繁進行垃圾回收以節省空間。這就是爲什麼我認爲你的本地回購可能會有更多的運氣。 – florianb