2013-08-29 110 views
4

我不斷收到此消息,約一小時一次:是什麼原因導致損壞的git的索引文件

錯誤:錯誤的索引文件SHA1簽名 致命的:索引文件損壞

我已經在網上看了一下,知道如何解決它,但試圖找出造成它的原因。

我使用服務器上的命令行工具,但在本地計算機上安裝了目錄(通過sshfs)。但我不使用本地git,只使用遠程服務器上的版本。

我能想到的唯一的另一件事是IntelliJ,但我停止使用那裏認爲它是導致衝突的git命令。

有沒有人有任何線索,問題可能是什麼?

+1

「知道如何解決它」 - 你在做什麼來解決這個問題? –

+0

rm .git/index; git reset – dbers

+1

自從你問這個問題已經有一段時間了。你找到答案了嗎?因爲我們在工作中的設置非常相似,而且有些同事也有同樣的問題。 我們在OSX上工作,直接在我們的(samba)掛載的服務器文件夾中的phpStorm上運行。 – Pjetr

回答

1

i don't use local git, only the version on the remote server.

有我對你的問題的賭注就在那裏。

在你的回購中做你的工作。當你的工作適合發佈時,推送到服務器回購站。如果您想分享正在進行的工作,請參閱Git push/pull between team members local repositories

(編輯:。你使用sshfs不這樣做的任何事情毫釐多用戶這是一個單用戶的便利FUSE前端爲sftp即使你關閉它的緩存仍然止跌」 )

+0

好吧,我想我必須這樣做。謝謝丹 – dbers

+0

在我的情況下,這個答案只是一個解決方法,並不是最優的。就像OP上的評論員一樣,我在Mac上使用PHPStorm,並使用安裝了samba的Ubuntu VM作爲git repo。這種設置與Dreamweaver這樣的「輕量級」IDE一起工作良好,但由於使用PHPStorm,我的git索引經常被損壞。 –

0

除非你直接找到解決Git index file,運行它刪除了.git目錄Git的索引文件在你的倉庫和「take the current branch and reset it to point somewhere else, and bring the index and work tree along」下命令的方式(但在此之前,記得備份你.git/index以防萬一):

$ rm .git/index 
$ git reset 
+0

是的,我在上面的評論中說過,我已經在做 – dbers

+0

哦,我沒有注意到。 – raf

+0

有一個選項可以回答你自己的問題(你應該爲未來的讀者做這件事)。 – raf

0

如果你的git安裝在一個遠程服務器上,也可以作爲IntelliJ項目的根目錄,那麼你將在git上產生鎖定爭用。 IntelliJ會不斷地破壞你的git索引,因爲你可能也會(例如)在終端會話中的命令行中使用git進行repo。

解決方法是通過轉到設置>版本控制並從該列表中刪除項目,從而取消註冊IntelliJ軟件內的任何版本控制。這應該告訴你的IDE完全忽略該項目根文件夾中git的存在,並永遠停止競爭控制git索引。

也看到這個問題:How to disable version control in phpstorm?

相關問題