到底是什么.gitignore?

问题描述 投票:178回答:5

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

git github gitignore
5个回答
143
投票

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

你可以找到here的完整细节。


35
投票

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

假设您使用的是Mac,并且所有目录中都有.DS_Store文件。您希望git忽略它们,因此您将.DS_Store添加为.gitignore中的一行。等等。

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


12
投票

在进行提交时,您不希望意外包含临时文件或构建特定文件夹。因此,使用.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用build文件夹中的中间对象文件和文件列出这样的已更改文件

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,以避免提交不必要的文件

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

8
投票

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

  1. 已跟踪 - 之前已暂存或已提交的文件;
  2. 未跟踪 - 尚未上演或提交的文件;要么
  3. 忽略 - 已明确告知Git忽略的文件。

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

  • 依赖性缓存,例如/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


1
投票

Main purpose of .gitignore – so you avoid adding your passwords etc to Git

不要相信你在互联网上的秘密

Github在互联网上。如果你把你的代码放在互联网上(即在Github上),那么你真的需要确保你没有在那里做任何妥协 - 例如密码,安全凭证或秘密。当然,Github有安全性,但如果安全性受到损害怎么办?您不希望破坏应用程序的整个安全性,因为Github的安全性受到了破坏。那么解决方案是什么?

让Git忽略某些文件

您可以要求git忽略对您的应用程序运行至关重要的某些文件(例如密码或机密)。这样,当您将代码放在互联网上时,即使有人设法查看您的代码,也不会发生任何事情。如果你正在开发一个开源项目 - 还有一些你根本不想'检查git'的东西。

然后,Git会忽略.gitignore文件中的任何内容。这是你想要的!

© www.soinside.com 2019 - 2024. All rights reserved.