什么是.gitignore?

我刚刚创build了一个Github仓库,并想知道.gitignore文件是什么。 我开始时没有创build一个,但由于大多数存储库都有一个,所以添加了一个。 我需要一个吗? 我可以/只是忽略它,还是有用? 我对这个主题做了一些研究,但是找不到具体的解释。

.gitignore告诉git应该忽略哪些文件(或模式)。 通常用于避免从工作目录提交对其他协作者无用的临时文件,例如编译产品,IDE创build的临时文件等。

你可以在这里find完整的细节。

这是你想要在工作目录中忽略的文件列表。

假设你在Mac上,并且在所有目录中都有.DS_Store文件。 你想让git忽略它们,所以你在.gitignore中添加.DS_Store作为一行。 等等。

git文档会告诉你所有你需要知道的: http : //git-scm.com/docs/gitignore

当你正在做一个提交你不想意外地包含临时文件或build立特定的文件夹。 因此,使用一个.gitignore列出你想忽略提交的项目。

此外,重要的 git status是最常用的命令之一,你希望git status列出已被修改的文件。

会希望你的git status列表看起来干净 ,不需要的文件。 例如,我改变了a.cpp, b.cpp, c.cpp, d.cpp & e.cpp我希望我的git status列出以下内容:

 git status a.cpp b.cpp c.cpp d.cpp e.cpp 

我不希望git status列出这样的中间对象文件和生成文件夹中的文件更改文件

 git status a.cpp b.cpp c.cpp d.cpp e.cpp .DS_Store /build/program.o /build/program.cmake 

因此,为了让自己摆脱git status来列出这些中间临时文件,并不小心将它们提交到回购站,我应该创build一个每个人都可以使用的.gitignore 。 我所需要做的是列出.gitignore中我想排除提交的文件和文件夹。

以下是我的.gitignore避免提交不必要的文件

 /*.cmake /*.DS_Store /.user /build 

有些文件你不希望Git检入。 Git将工作副本中的每个文件都视为三件事之一:

  1. 跟踪 – 一个以前已经上演或承诺的文件;
  2. 未被跟踪的 – 一个没有被上演或承诺的文件; 要么
  3. 忽略 – Git被明确告知忽略的文件。

忽略的文件通常是构build的工件和机器生成的文件,可以从您的存储库源派生,否则不应该提交。 一些常见的例子是:

  • 依赖关系caching,例如/node_modules/packages
  • 编译的代码,如.o.pyc.class文件
  • 构build输出目录,例如/bin/out/target
  • 在运行时生成的文件,例如.log.lock.tmp
  • 隐藏的系统文件,如.DS_StoreThumbs.db
  • 个人IDEconfiguration文件,如.idea/workspace.xml

忽略的文件将在名为.gitignore的特定文件中进行跟踪,该文件位于存储库的根目录中。 没有显式的git ignore命令:相反,当你想要忽略的新文件时,必须手动编辑和提交.gitignore文件。 .gitignore文件包含与存储库中的文件名匹配的模式,以确定是否应该忽略它们。 这是一个示例.gitignore文件。 欲了解更多详情,请看这个链接