2017-08-21 247 views
15

幾天前我將VS 2017升級到了15.3.0。從那時起,文件「storage.ide」仍保留在我的修改文件中,即使通過使用a suggested .gitignore for VS,其中包含.vs /文件夾。這包括以下內容。Visual Studio 2017 15.3.0 git更改包括「storage.ide」,即使.vs/in .gitignore

# Visual Studio 2015 cache/options directory 
.vs/ 

我加入以下更具體有關從文件列表中忽略此進行跟蹤

.vs/SIASAWeb/v15/sqlite3/storage.ide 
.vs/**/storage.ide 

在Team Explorer中的變化顯示以下內容:

<project folder> 
    .vs/<project>/v15/sqlite3 
    storage.ide 

我曾嘗試將git重置該文件,但是這會在下一次提交時返回,並且還存在於我打開的所有分支中,導致此操作阻止從一個分支輕鬆轉換到另一個分支即使沒有改變。

在解決方案資源管理器中,「applicationhost.config」和「.suo」文件被標記爲「忽略」,但「storage.ide」被標記爲「等待編輯」。

我已經嘗試提交,同步到GitHub服務器,關閉並重新打開VS,甚至重新啓動計算機。

我的問題是爲什麼這個文件被作爲一個修改後的文件進行維護,即使它應該被忽略的git。

+0

我剛剛開始在v15中看到包含db.lock,storage.ide,storage.ide-shm和storage.ide-wal文件的Server和slqite3文件夾。利亞姆的答案解決了它,請「接受」它。 – nmit026

回答

14

這可能意味着它在某些時候被錯誤地添加到了git倉庫,然後被忽略。如果gitignored文件存在於索引中(「簽入」),它將繼續跟蹤對gitignored文件的更改。

如果你不希望在所有檢查的文件,你可以從指數運行

git rm path/to-file --cached 

刪除這將保存在磁盤上的內容,如果你不希望文件在所有的存在,您可以運行

git rm path/to-file --force 

注意,這可能是不可取的,如果(例如)基地項目文件旨在檢查作爲一個起點,該項目的工作。你可能只需要注意而不是提交該特定文件。

+0

謝謝安東尼。這解決了這個問題。我必須在我升級VS之後打開的每個分支中應用此功能。但是,在某些情況下,它會將其刪除,然後立即再次將其添加回來。 –

+0

我對VS的git集成並不是很熟悉(因爲它還處於初級階段,所以我沒有用過它),但我可以想象這些事情可能會不同步。你可能會發現,在visual studio關閉時使用git cli修復它,然後重新打開visual studio可能會有所幫助? –

+2

VS中的Git集成不會自動添加storage.ide文件。在某個時候,它可能被意外地包含在提交中,然後轉到不同的分支。正如安東尼所提到的,一旦一個文件在Git倉庫中被執行,忽略模式不再適用於它。如果您使用git log來查看storage.ide文件的歷史記錄,它應該告訴您它何時添加。 –

0

我使用SourceTree(https://www.sourcetreeapp.com/)來管理我的git提交。 有了它,您可以右鍵單擊您的更改並有停止跟蹤選項。我用它來試圖忽略相同的文件,因爲我自己也升級到了15.3.0,這是我最後一次看到那些待處理的更改

+1

可能你可以擴大你的答案,告訴原始海報(OP)如何做到這一點在他的情況。簡單地說它對我而言並不是很有幫助。 – Umberto

+1

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/17905740) –

7

以下似乎已經解決了我的問題。

# Visual Studio 2015/2017 cache/options directory 
*.vs/ 

它忽略了它中的一切。

14

要解決這個問題,如果您到了團隊資源管理器選項卡並單擊管理連接按鈕(綠色的頂部),您將看到一個本地Git存儲庫列表。

右鍵單擊要停止跟蹤storage.ide文件的存儲庫並選擇「打開命令提示符」。

然後,您應該能夠鍵入以下命令:

git rm --cached -r .vs 

這消除了.VS文件夾及其內容和子目錄從Git中被跟蹤。

+0

完美答案。 – nmit026

相關問題