哪些Visual C ++文件types应该提交到版本控制?

哪个Visual Studio \ Visual C ++文件types应该提交到版本控制?
在我的项目中,我有以下文件types:

aps cpp exe filters h ico idb ipch lastbuildstate lib log manifest obj pch pdb rc rc2 res sdf sln suo tlog txt user vcxproj 

我将不胜感激每一个简短的推理。 如果有任何争议,请注意。 为了完整性,我有意包含一些简单的文件types。

编辑

一方面我想在未来成为平台独立。 另一方面,在不久的将来,我希望与有相似设置的团队成员合作。 设置之间的文件夹兼容性当然是一种select,所以如果缓解工作stream程,可以包含保存path的configuration文件。
再次,我肯定会感激一个解释是什么。

是:

  • cpp:源代码
  • filter:项目文件
  • h:源代码
  • ico:资源
  • rc:资源脚本
  • rc2:资源脚本
  • sln:项目文件
  • txt:项目元素
  • vcxproj:项目文件

没有:

  • aps:最后的资源编辑器状态
  • exe:生成结果
  • idb:build立状态
  • ipch:构build帮手
  • lastbuildstate:构build助手
  • lib:生成结果。 可以是第三方
  • 日志:build立日志
  • 清单:build立帮手。 可以自己写。
  • obj:构build帮手
  • pch:build立助手
  • pdb:生成结果
  • res:构build帮手
  • sdf:intellisense dbase
  • suo:解决用户选项
  • tlog:build立日志
  • 用户:debugging设置。 如果只是一个开发或自定义debugging设置,请保留

其中有几个是不确定的,因为它们都可以自动生成并维护自己。 还有几个没有出现在你的列表中。 主要关注文件的位置。 如果它在您的解决scheme或项目目录中,那么很可能需要将其签入。在“debugging”或“发布”子目录中,则极不可能。 Build + Clean删除了大量的噪音文件。 当然,签入,重命名项目目录,签出并validation它build立。

从你的名单我会select那些:

 cpp filters h ico manifest rc rc2 sln txt vcxproj 

一般来说,你应该版本build立项目所需的所有文件。 自动生成的文件不应归档为imho。

正如Microsoftbuild议的那样,版本控制中应该包含的文件types:

.mak,.dsp,.c,.rc,.rc2,.ico,.bmp,.txt,.def,.hpj,.bat,.rtf,.odl,.inf,.reg,.cnt,.cpp ,.cxx,.h,.hpp,.hxx,.inl,.tpl,.vtp和.mst …

文件types不应包含在:

.pch,.mdp,.ncb,.clw,.obj,.exe,.aps,.cpl,.awk,.exp,.lib,.idb,.opt,.pdb,.map,.res,.ilk ,.scc,.bsc,.sbr,.dll和.tlb …

但如果在exe文件或外部库中使用外部工具,那么我认为它也应该包含在版本控制中

信息:哪些Visual C ++文件添加到源代码pipe理

如果右键单击项目,上下文菜单中应该有一个“添加解决scheme到源代码pipe理”选项。

如果你使用这个,只有那些必要的文件才会被添加。 所有的中间和输出文件将被忽略。

其他的答案是非常好的。 我只是认为我会贡献一个有用的小工具。 查看GitHub上的Visual Studio .gitignore模板 。 这是一个很好的主动维护的文件列表,通常不受版本控制。

整个gitignore仓库是从ActionScript到Zend的各种开发非常有用的资源。 如果你不使用Git,你仍然可以使用gitignore文件作为参考。

通常,您应该将出现在解决scheme资源pipe理器中的所有文件添加到版本控制。 另外,您需要包含.sln(解决scheme文件)和.vcproj / .vcxproj / .vbproj / .csproj文件(项目文件)。

请注意,如果您有Visual Studio的源代码pipe理插件,例如TFS或AnkhSvn,则不需要明确关心这一点。 Visual Studio知道哪些文件需要在版本控制中,并将数据提供给源代码pipe理插件。 只有当你使用外部工具(例如TortoiseSVN)时,你是否需要有这样一个列表。

只有build立你的目标需要的力量。 我认为这只是.cpp .h .ico .rc .txt .manifest .rc2

我不知道什么sdf,aps,filter,用户,还没有看到他们在我的C ++版本。

只要看看它们是否包含程序员编写的代码或者是否由VS生成。

与之前的回答相反,我想指出,版本控制.opt文件似乎很重要,以跟踪用户选项。 请参阅以下参考:

https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx