2012-07-24 111 views
54

我正嘗試在一個用C#編寫的應用程序中使用Git - Extension與同事一起工作。GIT - 不能忽略.suo文件

我們在文件.gitignore中添加了文件「project1.suo」,但是每次我們中的一個人都必須提交項目時,Git似乎會告訴我們提交文件「project1.suo」。

我們已經嘗試了許多方法來添加文件中的.gitignore這樣的:

*.suo 
project1.suo 
c:\project\project1.suo 

我們不能修復此問題。

+2

是itselft加入到回購所述的.gitignore文件? – 2012-07-24 09:59:50

+0

是在存儲庫 – Laxedur 2012-07-24 10:02:23

+3

我猜這個文件已經添加過一次,明確地在這個文件上嘗試一個git rm,確認它是否仍然被建議添加文件。 – 2012-07-24 10:05:01

回答

113

git不會忽略已添加到存儲庫的文件。如果你想獲得它忽略了,你必須從資源庫中刪除文件:

git rm --cached project1.suo 
git commit -m "Delete suo file from repository" 

這將刪除從倉庫中的文件,而它仍然在你的硬盤上。

+0

如果你rm * .suo文件,當然它不會遠程推送這些文件。它會對克隆這個項目的人造成問題嗎? – Waqas 2016-02-19 12:54:35

+0

如果您使用的是Visual Studio客戶端,則無法從此處執行此操作,您必須使用cmd shell。但是,如果我使用shell的rm命令,我會看到帶有刪除線的.suo文件,但如果我通過VS UI提交更改,它將重新出現。您必須通過命令行執行上述兩個命令。 – 2016-04-04 18:25:02

+1

@Waqas不,視覺工作室只會爲他們創建一個新文件。這是作爲存儲庫的一部分排除* .suo的.gitignore非常重要。當他們提交時,他們簽出的.gitignore將阻止他們(或者至少阻止他們)檢查他們自己的SUO文件。 – 2016-04-04 18:27:19

-4

我有同樣的問題。 Ikke的解決方案有所幫助,但不要忘記從.gitignore中刪除* .suo條目,如果它存在的話。該文件進行修正後,執行

git add **/*.suo 
+1

.suo should NOT從.gitignore中刪除,以符合OP的要求。 – Caltor 2017-01-12 15:23:40

1

我總是回到這個問題,使用的方法的答案,但我發現了一個更好的解決方案,它是忽略此文件的變更。 該方法是

git update-index --assume-unchanged project1.suo 

git update-index --assume-unchanged .vs/config/applicationhost.config 

要撤消此使用--no-假定-不變

+0

我收到一條消息「致命:無法標記文件Web /」 – dancerjude 2018-03-07 15:01:45