为什么要使用.gitignore?为什么我不需要包含某些文件?

时间:2015-01-19 16:16:04

标签: git github

互联网上的每个地方都说"这就是你设置.gitignore的方式。" "你想拥有一个,你可以忽略文件。" " Blah Blah Blah。"但我的问题是"为什么?"为什么我不需要包含回购中的某些文件?我知道您不希望文件中包含敏感信息,但生成的文件又如何呢?那些我们被忽略的其他类型的文件怎么样?我知道这是我们应该做的......但为什么呢?

4 个答案:

答案 0 :(得分:4)

通常,您不希望派生和中间编译工件(如.obj),预编译头文件,版本化且易于下载的第三方二进制文件,单元测试输出块,有时还需要编译的二进制文件他们自己搞乱你的存储库。要排除的其他常见文件是每个开发人员配置和首选项文件,例如,用于IDE环境主题和快捷方式首选项。

如果您检查了所有实际来源,您可以随时重建任何版本,因此不检查这些内容就不会丢失任何有价值的内容。也可以认为二进制文件不是一等公民。版本控制系统anwyay,因为无法对这些进行视觉差异。

大多数常见语言/环境设置都有标准的预配置.gitignore设置here

答案 1 :(得分:0)

项目中的某些文件特定于您的环境,通常由编辑器生成。 最好不要跟踪它们,因为你的存储库尺寸较小,只有文件对你的项目有意义,你必须处理较少的合并冲突,因为这些文件通常会从环境变为环境。

答案 2 :(得分:0)

您希望存储库跟踪您所做的工作。提交应该反映您的手动更改,查看修补程序历史记录应该让其他人了解更改内容和原因。

如果您要将所有自动生成的文件包含在存储库中,那么您的提交会因自动生成的文件的更改而变得混乱,从而难以理解实际更改的内容,从而降低了使用版本控制系统。

答案 3 :(得分:0)

最佳做法是避免通过简单构建项目生成的任何文件。如果您正在处理大型项目,为什么每个开发人员的每个分支都包含不需要构建项目的文件?这意味着,如果你有合并冲突,你大多数都有两次,你就看不到正确的改变了等等。你想保持你的提交尽可能干净,只是为了保持秩序并避免冲突同时推动和拉。

但这只适用于团队项目。

相关问题