到底是什么.gitignore?

时间:2015-01-08 21:56:43

标签: git github gitignore

我刚刚创建了一个Github存储库,并想知道.gitignore文件的用途。我开始时没有创建一个,但由于大多数存储库都有一个,因此添加了一个。 我需要一个吗?可以/我可以忽略它,还是有用? 我对这个问题进行了一些研究,但无法找到具体的解释。

5 个答案:

答案 0 :(得分:142)

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

您可以找到完整的详细信息here

答案 1 :(得分:34)

它是您希望git在工作目录中忽略的文件列表。

说你在Mac上,你的所有目录中都有.DS_Store文件。您希望git忽略它们,因此您将.DS_Store添加为.gitignore中的一行。等等。

git docs将告诉您需要知道的所有内容:http://git-scm.com/docs/gitignore

答案 2 :(得分:12)

当您进行提交时,您不希望意外包含临时文件或构建特定文件夹。因此,使用pd.crosstab(df.index.get_level_values('date'), df['val']) Out: val 0 1 2 3 row_0 2021-01-01 2 1 1 1 2021-01-02 1 0 0 1 2021-01-03 2 0 0 0 列出您要在提交时忽略的项目。

另外,重要的是 .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。我需要做的就是列出文件& .gitignore中我想要从提交中排除的文件夹。

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

.gitignore

答案 3 :(得分:8)

有些文件你不希望Git签到。 Git将工作副本中的每个文件视为以下三种方式之一:

  1. 已跟踪 - 之前已暂存或已提交的文件;
  2. 未跟踪 - 尚未上演或提交的文件;或
  3. 被忽略 - 一个Git被明确告知要忽略的文件。
  4. 忽略的文件通常是构建的工件和机器生成的文件,可以从您的存储库源派生,也可以不提交。一些常见的例子是:

    • 依赖性缓存,例如/node_modules/packages
    • 的内容
    • 已编译的代码,例如.o.pyc.class个文件
    • 构建输出目录,例如/bin/out/target
    • 运行时生成的文件,例如.log.lock.tmp
    • 隐藏的系统文件,例如.DS_StoreThumbs.db
    • 个人IDE配置文件,例如.idea/workspace.xml

    在名为.gitignore的特殊文件中跟踪忽略的文件,该文件在存储库的根目录中签入。没有明确的git ignore命令:当您拥有要忽略的新文件时,必须手动编辑和提交.gitignore文件。 .gitignore个文件包含与存储库中的文件名匹配的模式,以确定是否应忽略它们。这是一个sample.gitignore文件。 有关详细信息,请查看此link

答案 4 :(得分:1)

.gitignore的主要目的–因此您避免将密码等添加到Git

不信任您在互联网上的秘密

Github在互联网上。如果您将代码放在互联网上(例如,在Github上),那么您确实需要确保您不会在其中放置任何妥协的内容,例如密码,安全凭证或机密。当然,Github具有安全性,但是如果该安全性受到损害怎么办?您不希望仅仅因为Github的安全性受到破坏而破坏了应用程序的整体安全性。那么解决办法是什么?

询问Git忽略某些文件

您可以要求git忽略某些对应用程序运行必不可少的文件(例如密码或机密)。这样,当您将代码放在Internet上时,即使有人设法看到您的代码,也不会发生任何事情。而且,如果您正在开发一个开源项目,那么有些事情就是您根本不想“签入git”。

.gitignore文件中的所有内容都将被Git忽略。你想要哪一个!