2012-11-09 116 views
0

我正在使用Git作爲項目。 截至昨天晚上,資料庫已啓動並正在運行,並且我像往常一樣在一天結束時關閉計算機。我的項目文件夾不再是Git存儲庫

今天上午,試圖從我的項目文件夾運行git status因爲我總是做的時候,我得到這個錯誤:fatal: not a git repository (or any of the parent directories): .git

我知道什麼,我關閉了我的電腦的那一刻之間發生了,今天上午再次啓動它,所以我很困惑爲什麼庫會像那樣消失。文件夾中的.git文件夾和.gitignore文件仍然存在,這是值得的。

現在我的問題在於,即使我可以在新文件夾中完成全新的資源庫檢出,我仍然擁有昨天隱藏的代碼(使用git stash),其中包括一個SQL查詢腳本,它花費了我幾個小時編寫代碼和其他代碼我甚至不記得它是什麼,因爲我用了很多存儲尚未完成的未完成工作。

我搜索了互聯網,特別是這個地方,發現沒有人有同樣的問題,這使得它更奇怪。

+1

您現在位於.git目錄中。做CD ..然後git狀態 –

+0

我已經在我的存儲庫文件夾(即'.git/..') –

+0

如果你願意共享一個整個目錄的zip我會看看。根據您提供的信息,我不確定我能否提供任何幫助。隱藏的代碼存儲在您的倉庫中,只是手動進入或修復.git目錄。 –

回答

1

強制性問題:您有備份嗎?

如果不是:不好。

如果是:將存儲庫的備份恢復到不同的目錄,檢查出你知道你正在使用的最新的分支/提交,如果還有一個存儲在那個備份中,將它提交給一個新的分支。然後使用損壞的存儲庫的源文件覆蓋該分支中的源文件。這給你最後一個未損壞,備份狀態和你在此期間做的任何事情的區別。你也可以把它藏起來。

由於這個原因,我通常很早就提交,經常提交到外部存儲庫作爲備份。

+0

不幸的是,我沒有備份。我所擁有的就是我的項目文件夾處於與git倉庫昨天工作時相同的狀態。但它不再是一個回購協議......因此,爲了說清楚,除了存儲內容外,我沒有丟失任何代碼(除非有辦法檢索)。 –

+0

@Gaël:存儲庫不會替代備份。讓您的SCM資源庫丟失幾乎和丟失工作樹代碼一樣糟糕!以此爲藉口並始終保留備份。特別是使用像Git這樣的工具,將整棵樹推入遠程位置非常簡單。 – datenwolf

+0

謝謝。我想這是一個教訓。 –

2

如果你仍然有\.git子目錄,那麼你有機會。可能有一個條目已被損壞。我不記得Git檢查什麼具體內容來確認文件夾是否是一個合適的回購站,但通常可以用一點點毅力恢復這些東西。

先備份。然後採取另一種方法,以防萬一(.git通常是一個隱藏的文件)

你在說什麼.git目錄結構 - 它是否有所有預期的內容?

您是否有遙控器將您的大部分內容推到尋找比較?

更新:請參見The presence of .git/HEAD is the secondary check for a git repository

相關問題