应该将哪些Visual C ++文件类型提交给版本控制?

时间:2010-10-13 10:21:35

标签: visual-studio visual-c++ version-control file-type

应该将哪些Visual Studio \ Visual C ++文件类型提交给版本控制? 在我的项目中,我有以下文件类型:

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

我非常感谢每个人的简短推理。如果其中任何一个存在争议,请注意。为了完整性,我故意包括甚至是琐碎的文件类型。

修改

一方面,我希望将来能够独立于平台。另一方面,在不久的将来,我想与具有类似设置的团队成员合作。设置之间的文件夹兼容性当然是一个选项,因此如果它简化了工作流程,则可以包含保存路径的配置文件。
同样,我肯定会感谢解释什么是什么。

8 个答案:

答案 0 :(得分:224)

是:

  • cpp:源代码
  • 过滤器:项目文件
  • h:源代码
  • ico:resource
  • rc:资源脚本
  • rc2:资源脚本
  • sln:项目文件
  • txt:project element
  • vcxproj:项目文件

否:

  • aps:最后一个资源编辑器状态
  • exe:build result
  • idb:build state
  • ipch:build helper
  • lastbuildstate:build helper
  • lib:构建结果。可以是第三方
  • log:build log
  • 清单:构建助手。可以自己写。
  • obj:build helper
  • pch:build helper
  • pdb:build result
  • res:build helper
  • sdf:intellisense dbase
  • suo:解决方案用户选项
  • tlog:构建日志
  • 用户:调试设置。 仅保留一个开发或自定义调试设置

其中一些是不确定的,因为它们都可以自动生成和维护。还有几个没有出现在您的列表中。主要注意文件的位置。如果它在您的解决方案或项目目录中,那么很可能您想要将其签入。在Debug或Release子目录中,则极不可能。 Build + Clean删除了大量的噪音文件。当然:签入,重命名项目目录,签出并验证它是否构建。

答案 1 :(得分:26)

从列表中我选择:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

通常,您应该对构建项目所需的所有文件进行版本控制。不应将自动生成的文件存档为imho。

答案 2 :(得分:15)

根据Microsoft的建议,应包含在版本控制中的文件类型:

  

.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 ...

不应包含在的文件类型:

  

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

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

INFO: Which Visual C++ Files to Add to Source-Code Control

此外,此链接描述了Visual Studio 2017中的File Types for Visual C++ Projects

答案 3 :(得分:7)

如果右键单击项目,则应在上下文菜单中选择“添加源控件解决方案”选项。

如果使用此选项,则只会添加必要的文件。所有中间文件和输出文件都将被忽略。

答案 4 :(得分:2)

其他答案非常好;我只是觉得我贡献了一个有用的小工具。查看GitHub上的Visual Studio .gitignore template。它是一个很好的积极维护的文件列表,通常不受版本控制。

虽然您正在使用它,但整个gitignore repository对于从ActionScriptZend的各种开发都是非常有用的资源。如果你不使用Git,你仍然可以使用gitignore文件作为参考。

答案 5 :(得分:1)

通常,您应该将解决方案资源管理器中显示的所有文件添加到版本控制中。此外,您需要包含.sln(解决方案文件)和.vcproj / .vcxproj / .vbproj / .csproj文件(项目文件)。

请注意,如果您有Visual Studio的源代码控制插件,例如TFS或AnkhSvn,则无需明确关注此问题。 Visual Studio知道哪些文件需要在版本控制中,并将数据提供给源代码控制插件。只有当你使用外部工具(例如TortoiseSVN)时,你才需要有这样的清单。

答案 6 :(得分:0)

仅构建目标所需的onces。 我认为这只是.cpp .h .ico .rc .txt .manifest .rc2

我不知道sdf,aps,过滤器,用户是什么,还没有在我的C ++版本中看到它们。

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

答案 7 :(得分:-2)

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

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