![]() |
1
42
任何产生的东西。二进制,字节码,由XML生成的代码/文档。 从我的评论中排除:
但包括:
fwiw,在我为一个非常大的项目工作时,clearcase下有以下内容:
我们没有为我们的软件构建模块。每两周发布一个完整的二进制文件,其中包含最新的更新。 |
![]() |
2
18
特定于操作系统的文件,由其文件浏览器生成,如
|
![]() |
3
15
其他一些visual studio典型的文件/文件夹是
例如,我的乌龟全局忽略模式如下所示
|
![]() |
4
11
不应签入生成的文件 |
![]() |
5
7
喜欢 Corey D 有 said 生成的任何东西,特别是由构建过程和开发环境生成的任何东西都是很好的候选者。例如:
上述情况的一些例外情况可能是:
以第三方库为例,如果您需要发布或者您的构建依赖于第三方库,那么将其置于源代码控制下是不合理的,特别是如果您没有源代码的话。还可以考虑一些源代码管理系统在存储二进制blob方面效率不高,并且您可能无法利用systems diff工具来存储这些文件。 Paul 同时对生成的文件做了很好的评论,您应该查看他的 answer :
所有这些最终都被说出来了,你需要逐个考虑你在源代码管理下做了什么。定义一个什么和什么不放在它下面的硬性清单只对一些人有效,而且可能只会持续很长时间。当然,添加到源代码管理中的文件越多,更新工作副本所需的时间就越长。 |
![]() |
6
6
可以由IDE、构建过程或二进制可执行进程生成的任何内容。 |
![]() |
7
6
我会用不同的方法来处理这个问题;什么事情 应该 是否包含在源代码管理中?您应该只对以下文件进行源代码管理:
该列表包括以下内容:
有时,生成输出可以是构建输入。例如,混淆重命名文件可以是保持相同重命名方案的输出和输入。在这种情况下,使用签入文件作为生成输入,并将输出放在其他文件中。生成之后,签出输入文件并将输出文件复制到其中并签入。 使用排除列表的问题是,您永远不会知道所有正确的排除,并且可能最终会控制源代码不应该控制的内容。 |
![]() |
8
6
例外情况: 4到5个不同的答案都说生成的文件不应该受源代码管理。这不完全正确。 由专业工具生成的文件可能属于源代码管理,特别是在需要这些工具的特定版本时。 实例:
基本上,如果你不能合理地期望开发人员拥有 精确工具的精确版本 他们需要,有一个将生成的文件放入版本控制的案例。 SVN的人在他们的 best practices talk . |
![]() |
9
5
编辑器中的临时文件。
等。 |
![]() |
10
4
|
![]() |
11
3
包含密码或任何其他敏感信息的配置文件。 |
![]() |
12
3
ASP.NET中的Web.CONFIG这样的实际配置文件,因为人们可以有不同的设置。通常我处理这个问题的方法是在svn上有一个web.config.template。人们得到它,做他们想要的更改,并将其重命名为web.config。 除了这个和你说的,小心包含密码的敏感文件(例如)。 避免所有由Windows(Thumb)或Mac OS(.ds_store)生成的烦人文件 |
![]() |
13
2
|
![]() |
14
2
另外: Visual Studio
|
![]() |
15
2
我认为最好的办法是: 假装你有一台全新的,商店买的电脑。安装操作系统和更新;安装所有开发工具,包括源代码管理客户端;创建一个空目录作为本地源的根目录;执行“获取最新版本”或源代码管理系统调用的任何操作,以获取所需版本的干净副本构建;然后运行构建(从源代码管理获取),所有内容都将构建。 这个思想过程告诉您为什么某些文件必须在源代码管理中:所有这些都是构建在干净系统上工作所必需的。这包括.designer.cs文件、t4模板的输出以及生成将不会创建的任何其他工件。 |
![]() |
16
1
临时文件,除了全局开发和敏感信息之外的任何配置 |
![]() |
17
1
不属于源代码管理的东西分为三类
|
![]() |
18
0
不管是什么语言:
对于那些不知道的人:
|
![]() |
19
0
如果您的代码有一个运行时环境(例如依赖关系库、特定编译器版本等),请不要将包放入源代码管理中。我的方法很残忍,但很有效。我提交一个makefile,它的角色是下载(通过wget)这些东西,解压它,并构建我的运行时环境。 |
![]() |
20
0
我有一个不在源代码管理中的特定.c文件。 规则在源代码管理中不是在生成过程中生成的。 唯一已知的异常是,如果工具需要自己的旧版本来构建(引导问题)。在这种情况下,您需要在源代码管理中知道一个良好的引导复制,这样您就可以从空白中构建。 |
![]() |
21
0
但我相信,如果在visual studio中使用任务列表,它们会保存在.suo文件中。这可能不是让它们保持在源代码管理中的原因,但这是在某处保留备份的原因,以防万一…… |
![]() |
22
0
这个问题被问了很多时间,我认为很多答案,而相关的,没有详细的细节。
Github提供了一个非常有用的社区协作列表
以下是Git回购的链接: https://github.com/github/gitignore 为了回答这个问题,以下是相关的示例:
也有操作系统特定的
所以,假设你在跑步
窗户
并使用
日食
你可以连接起来
别忘了将.gitignore添加到您的repo中并提交它! 很可能,您的ide已经为您处理了这个问题。无论如何,visual studio是这样做的。
为了
|
![]() |
23
0
我总是用
www.gitignore.io
产生一个合适的
|
![]() |
24
-1
意见:如果需要的话,任何东西都可以在源代码管理中,除非它带来了大量的存储开销,如频繁更改或大的斑点。 第三方二进制文件,很难生成(按时间计算)生成的文件来加快部署过程,一切正常。 源代码管理的主要目的是将一个相干系统状态与一个修订号相匹配。如果可能的话,我会用代码构建工具和目标操作系统冻结整个宇宙。 |
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |