到底是什么.gitignore?

Zah*_*hos 198 git github gitignore

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

Mur*_*nik 163

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

您可以在此处找到完整的详细信息.

  • 它也适用于密码和安全性 (7认同)
  • @user34660 忽略意味着 - Git 不会跟踪“.gitignore”文件中(模式)指定的文件中的更改。即使您更改它们,git 也不会将它们显示为已修改。 (2认同)
  • 那么轨迹是什么意思呢?您必须了解,初学者可能不知道跟踪是否适用于提交之前/之后、推送之前/之后或其他内容。仅在相关上下文中有意义的术语需要进行定义/解释。我将一个项目推送到 GitHub 并获得了一些我认为不应该发布的文件。我并不是在寻求帮助,除非它会帮助我确定应该发生的事情,这样我就可以确定发生的事情是不应该发生的(有些东西坏了),所以我知道我需要修复它。 (2认同)

And*_*ter 36

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

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

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

  • 你的`.DS_Store` 场景终于引起了我的共鸣,因为我想我并没有坚持这个概念,因为我还没有需要在项目中使用它。谢谢你。我最终使用 [this](https://gist.github.com/octocat/9257657) 作为起点,因为我使用了所有不同的操作系统,特别注意了`# OS 生成的文件 #` 部分。 (2认同)
  • 我知道我迟到了这个帖子,但谢谢@AndyLester!在编程和 Github 方面,我是新手。我发现许多为解决此类问题而编写的答案都充满了新手可能无法理解的术语(即,编译产品、IDE 创建的临时文件......这些 h@ll 是什么东西!)。但是,您的 Mac 描述以其优雅的简单性而完美! (2认同)

Gam*_*ads 15

在进行提交时,您不希望意外包含临时文件或构建特定文件夹.因此,使用.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
Run Code Online (Sandbox Code Playgroud)

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

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake
Run Code Online (Sandbox Code Playgroud)

因此,为了让自己免于git status列出这些中间临时文件并意外地将它们提交到回购中,我应该创建一个.gitignore每个人都做的.我需要做的就是列出.gitignore我要从提交中排除的文件和文件夹.

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

/*.cmake
/*.DS_Store
/.user
/build
Run Code Online (Sandbox Code Playgroud)


小智 5

有些文件你不希望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文件包含与存储库中的文件名匹配的模式,以确定是否应忽略它们.这是一个示例.gitignore文件.有关详细信息,请查看此链接


BKS*_*eon 5

.gitignore 的主要目的——避免添加不相关的文件等。 Git

我在某些存储库中有很多个人笔记/涂鸦:它们对我有用,但对其他人没有用。我不希望它上传到 github,因为它只会让阅读它的每个人都感到困惑。好消息是我可以让 git “忽略”这些文件。这种方法的唯一成本是,如果我的计算机崩溃等,我将无法恢复这些笔记。