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

Jon*_*han 170 version-control file-type visual-studio visual-c++

哪个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
Run Code Online (Sandbox Code Playgroud)

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

编辑

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

Han*_*ant 228

是:

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

没有:

  • aps:最后一个资源编辑器状态
  • exe:构建结果
  • idb:构建状态
  • ipch:构建帮助器
  • lastbuildstate:构建帮助器
  • lib:构建结果.可以是第三方
  • 日志:构建日志
  • manifest:构建帮助器.可以自己写.
  • obj:构建帮助器
  • pch:构建帮手
  • pdb:构建结果
  • res:构建帮助器
  • sdf:intellisense dbase
  • suo:解决方案用户选项
  • tlog:构建日志
  • user:调试设置. 如果只有一个开发或自定义调试设置,请保留

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


Mil*_*lan 26

从你的清单中我选择那些:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj
Run Code Online (Sandbox Code Playgroud)

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

  • 清单可以有不同的目的.我已经手动创建了一个包含在资源文件中的文件,导致窗口将样式应用到我的窗口.此外,还有一些清单可以让您在可执行文件旁边部署标准库dll.想想关于你的应用程序的元数据...... (3认同)
  • @Jonathan suo保存与解决方案相关的特定于开发人员的数据(例如在解决方案资源管理器中打开哪些文件或打开/折叠哪些文件夹).因此,它不应该在版本控制中. (3认同)

phu*_*clv 16

正如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文件或外部库中使用外部工具,那么我认为它也应该包含在版本控制中

信息:要添加到源代码控制的Visual C++文件

此外,此链接还描述了Visual Studio 2017中Visual C++项目文件类型.


Chr*_*isF 7

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

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


Phi*_*hil 5

其他答案都很棒;我只是想我会贡献一个有用的小工具。查看GitHub 上的Visual Studio .gitignore 模板。这是一个很好的积极维护的文件列表,这些文件通常不受版本控制。

当您使用它时,整个gitignore 存储库对于从ActionScriptZend 的各种开发来说都是非常有用的资源。如果你不使用 Git,你仍然可以使用 gitignore 文件作为参考。