什么是.gitignore?

mwngjboj  于 2022-12-17  发布在  Git
关注(0)|答案(6)|浏览(149)

我刚刚创建了一个Github仓库,我想知道.gitignore文件是做什么用的。我没有创建一个,但是添加了一个,因为大多数仓库都有一个。我需要一个吗?我可以/可以忽略它吗?或者它有一个用途吗?

kninwzqo

kninwzqo1#

.gitignore告诉git应该忽略哪些文件(或模式),通常用于避免提交工作目录中对其他合作者无用的临时文件,例如编译产品、IDE创建的临时文件等。
您可以找到完整的详细信息here

ipakzgxi

ipakzgxi2#

这是一个你希望git忽略的工作目录中的文件列表。
假设你在Mac上,所有目录下都有.DS_Store文件,你想让git忽略它们,所以你在. gitignore中添加一行.DS_Store,以此类推。
git docs会告诉你所有你需要知道的:http://git-scm.com/docs/gitignore

bcs8qyzn

bcs8qyzn3#

当你提交的时候,你不希望意外地包含临时文件或者构建特定的文件夹,因此使用.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中解放出来,列出这些中间临时文件,并不小心将它们提交到repo中,我应该创建一个.gitignore,每个人都这样做。我所需要做的就是列出.gitignore中我想从提交中排除的文件和文件夹。

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

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

xnifntxz4#

有些文件是你不想让Git签入的。Git会将工作副本中的每个文件视为以下三种情况之一:

  1. tracked -先前已暂存或提交的文件;
    1.未跟踪-尚未暂存或提交的文件;或者是
  2. ignored -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

nmpmafwu

nmpmafwu5#

.gitignore的主要用途-避免添加不相关的文件等。Git

我在某些存储库中有很多个人笔记/涂鸦:它们对我有用,但对其他人没用。我不想把它上传到github,因为这会让所有读到它的人感到困惑。好的一面是我可以让git“忽略”这些文件。这种方法的唯一代价是如果我的电脑崩溃了,我将无法恢复这些笔记。

pbwdgjma

pbwdgjma6#

.gitignore文件是一个文本文件,指示Git忽略项目中的某些文件或文件夹。本地**.gitignore文件通常保存在项目的根目录中。您也可以创建一个全局.gitignore文件,如果在所有Git存储库中找到该文件中的任何条目,该文件将被忽略。要创建一个本地.gitignore文件,创建一个文本文件并命名为.gitignore**(记得在开头加上.)。2然后根据需要编辑这个文件。3每一行都应该列出一个你希望Git忽略的文件或文件夹。

此文件中的条目也可以遵循匹配模式。
*用作通配符匹配
/用于忽略相对于.gitignore文件的路径名
#用于向.gitignore文件添加注解

相关问题