2012-07-24 256 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