当Git与Visual Studio解决方案(.sln)和项目一起使用时,我应该在.gitignore中包含哪些文件?


当前回答

这是我最近在做的一个项目的。gitignore的摘录。我提取了我认为与Visual Studio相关的内容,包括编译输出;这是一个跨平台的项目,所以对于其他构建系统产生的文件有各种其他的忽略规则,我不能保证我准确地将它们分开。

*.dll
*.exe
*.exp
*.ilk
*.lib
*.ncb
*.log
*.pdb
*.vcproj.*.user
[Dd]ebug
[Rr]elease

也许这个问题应该是Community Wiki,这样我们就可以一起编辑一个带有注释的主列表,说明对于哪种类型的项目哪些文件应该被忽略?

其他回答

下面是我在。net项目中为我的.gitignore文件所使用的。

[Oo]bj/
[Bb]in/
*.suo
*.user
/TestResults
*.vspscc
*.vssscc

这几乎是一个全MS的方法,它使用内置的Visual Studio测试器,并且一个项目也可能有一些TFS绑定。

在Visual Studio中有一个快捷方式,因为它在2015年及以上版本支持Git开箱即用。对于新的解决方案(或一些没有.git文件夹的解决方案),使用解决方案资源管理器中的源代码控制功能:

右键单击解决方案并选择将解决方案添加到源代码控制…弹出菜单中的项目。

它会自动初始化.git存储库,将.gitignore和必要的东西添加到您的解决方案,甚至是.gitattributes文件(行结束符等)。

文本将出现在VS控制台:

A new Git repository has been created for you in C:\<path to your solution>
Commit ______ created locally in repository.

完成了!

您可以通过转到团队资源管理器中的设置视图,然后选择存储库设置来创建或编辑您的.gitignore文件。选择编辑你的。gitignore。

它会自动创建过滤器,忽略所有VS特定的构建目录等。

更多信息请看这里。

这里的聚会很晚,但我也发现我使用以下方法。有些可能只用于在按到公共远程时隐藏敏感文件。

#Ignore email files delivered to specified pickup directory
*.eml

#Allow NuGet.exe (do not ignore)
!NuGet.exe

#Ignore WebDeploy publish profiles
*.Publish.xml

#Ignore Azure build csdef & Pubxml files
ServiceDefinition.build.csdef
*.azurePubxml

#Allow ReSharper .DotSettings (for non-namespace-provider properties)
!*.csproj.DotSettings

#Ignore private folder
/Private/

我在c#项目中使用下面的.gitignore。在需要时添加其他模式。

[Oo]bj
[Bb]in
*.user
*.suo
*.[Cc]ache
*.bak
*.ncb
*.log 
*.DS_Store
[Tt]humbs.db 
_ReSharper.*
*.resharper
Ankh.NoLoad