.gitignore 文件——如何在 Git 中忽略文件和文件夹详细教程

这篇具有很好参考价值的文章主要介绍了.gitignore 文件——如何在 Git 中忽略文件和文件夹详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是 .gitignore 文件?.gitignore 文件是用来做什么的?

在任何当前工作的 Git 仓库中,每个文件都是这样的:

  • 追踪的(tracked)- 这些是 Git 所知道的所有文件或目录。这些是新添加(用 git add 添加)和提交(用 git commit 提交)到主仓库的文件和目录。
  • 未被追踪的(untracked) - 这些是在工作目录中创建的,但还没有被暂存(或用 git add 命令添加)的任何新文件或目录。
  • 被忽略的(ignored) - 这些是 Git 知道的要全部排除、忽略或在 Git 仓库中不需要注意的所有文件或目录。本质上,这是一种告诉 Git 哪些未被追踪的文件应该保持不被追踪并且永远不会被提交的方法。

所有被忽略的文件都会被保存在一个 .gitignore 文件中。

.gitignore 文件是一个纯文本文件,包含了项目中所有指定的文件和文件夹的列表,这些文件和文件夹是 Git 应该忽略和不追踪的。

.gitignore 中,你可以通过提及特定文件或文件夹的名称或模式来告诉 Git 只忽略一个文件或一个文件夹。你也可以用同样的方法告诉 Git 忽略多个文件或文件夹。

如何创建一个 .gitignore 文件?

通常,一个 .gitignore 文件会被放在仓库的根目录下。根目录也被称为父目录和当前工作目录。根目录包含了组成项目的所有文件和其他文件夹。

也就是说,你可以把它放在版本库的任何文件夹中。你甚至可以有多个 .gitignore 文件。

要在基于 Unix 的系统(如 macOS 或 Linux)上用命令行创建一个 .gitignore 文件,打开终端程序(如 macOS 上的 Terminal.app)。然后,用 cd 命令导航到包含项目的根文件夹,并输入以下命令,为你的目录创建一个 .gitignore 文件:

touch .gitignore

名字前面有点(.)的文件默认是隐藏的。

当单独使用 ls 命令时,隐藏的文件是不可见的。要从命令行查看所有的文件–包括隐藏的文件–请在 ls 命令中使用 -a 标志,如图所示:

ls -a

在 .gitignore 文件中应包括什么?

你应该考虑添加到 .gitignore 文件中的文件类型是任何不需要被提交的文件。

你可能出于安全原因不想提交它们,或者因为它们是你的本地文件,因此对与你在同一项目上工作的其他开发者来说是不必要的。

其中一些可能包括:

  • 操作系统文件。每个操作系统(如 macOS、Windows 和 Linux)都会生成系统特定的隐藏文件,其他开发者不需要使用这些文件,因为他们的系统也会生成这些文件。例如,在 macOS 上,Finder 会生成一个 .DS_Store 文件,其中包括用户对文件夹的外观和显示的偏好,如图标的大小和位置。
  • 由代码编辑器和 IDE(IDE 代表集成开发环境)等应用程序生成的配置文件。这些文件是为你、你的配置和你的偏好设置定制的。
  • 从你的项目中使用的编程语言或框架自动生成的文件,以及编译后的代码特定文件,如 .o 文件。
  • 由软件包管理器生成的文件夹,如 npm 的 node_modules 文件夹。这是一个用于保存和跟踪你在本地安装的每个软件包的依赖关系的文件夹。
  • 包含敏感数据和个人信息的文件。这类文件的一些例子是含有你的凭证(用户名和密码)的文件和含有环境变量的文件,如 .env 文件(.env 文件含有需要保持安全和隐私的 API 密钥)。
  • 运行时文件,如 .log 文件。它们提供关于操作系统的使用活动和错误的信息,以及在操作系统中发生的事件的历史。

如何在 Git 中忽略一个文件和文件夹

如果你想只忽略一个特定的文件,你需要提供该文件在项目根目录下的完整路径。

例如,如果你想忽略位于根目录下的 text.txt 文件,你可以做如下操作:

/text.txt

而如果你想忽略一个位于根目录下的 test 目录中的 text.txt 文件,你要做的是:

/test/text.txt

你也可以这样写上述内容:

test/text.txt

如果你想忽略所有具有特定名称的文件,你需要写出该文件的字面名称。

例如,如果你想忽略任何 text.txt 文件,你可以在 .gitignore 中添加以下内容:

text.txt

在这种情况下,你不需要提供特定文件的完整路径。这种模式将忽略位于项目中任何地方的具有该特定名称的所有文件。

要忽略整个目录及其所有内容,你需要包括目录的名称,并在最后加上斜线 /

test/

这个命令将忽略位于你的项目中任何地方的名为 test 的目录(包括目录中的其他文件和其他子目录)。

需要注意的是,如果你只写一个文件的名字或者只写目录的名字而不写斜线 /,那么这个模式将同时匹配任何带有这个名字的文件或目录:

# 匹配任何名字带有 test 的文件和目录
test

如果你想忽略任何以特定单词开头的文件或目录怎么办?

例如,你想忽略所有名称以 img 开头的文件和目录。要做到这一点,你需要指定你想忽略的名称,后面跟着 * 通配符选择器,像这样:

img*

这个命令将忽略所有名字以 img 开头的文件和目录。

但是,如果你想忽略任何以特定单词结尾的文件或目录呢?

如果你想忽略所有以特定文件扩展名结尾的文件,你需要使用 * 通配符选择器,后面跟你想忽略的文件扩展名。

例如,如果你想忽略所有以 .md 文件扩展名结尾的 markdown 文件,你可以在你的 .gitignore 文件中添加以下内容:

*.md

这个模式将匹配位于项目中任何地方的以 .md 为扩展名的任何文件。

前面,你看到了如何忽略所有以特定后缀结尾的文件。当你想做一个例外,而有一个后缀的文件你不想忽略的时候,会发生什么?

假设你在你的 .gitignore 文件中添加了以下内容:

.md

这个模式会忽略所有以 .md 结尾的文件,但你不希望 Git 忽略一个 README.md 文件。

要做到这一点,你需要使用带有感叹号的否定模式,即 !,来排除一个本来会被忽略的文件:

# 忽略所有 .md 文件
.md

# 不忽略 README.md 文件
!README.md

.gitignore 文件中使用这两种模式,所有以 .md 结尾的文件都会被忽略,除了 README.md 文件。

需要记住的是,如果你忽略了整个目录,这个模式就不起作用。

例如,你忽略了所有的 test 目录:

test/

假设在一个 test 文件夹内,你有一个文件,example.md,你不想忽略它。

你不能像这样在一个被忽略的目录内排除一个文件:

# 忽略所有名字带有 test 的目录
test/

# 试图在一个被忽略的目录内排除一个文件是行不通的
!test/example.md

如何忽略以前提交的文件

当你创建一个新的仓库时,最好的做法是创建一个 .gitignore 文件,包含所有你想忽略的文件和不同的文件模式–在提交之前。

Git 只能忽略尚未提交到仓库的未被追踪的文件。

如果你过去已经提交了一个文件,但希望没有提交,会发生什么?

比如你不小心提交了一个存储环境变量的 .env 文件。

你首先需要更新 .gitignore 文件以包括 .env 文件:

# 给 .gitignore 添加 .env 文件
echo ".env" >> .gitignore

现在,你需要告诉 Git 不要追踪这个文件,把它从索引中删除:

git rm --cached .env

git rm 命令,连同 --cached 选项,从版本库中删除文件,但不删除实际的文件。这意味着该文件仍然在你的本地系统和工作目录中作为一个被忽略的文件。

git status 会显示该文件已不在版本库中,而输入 ls 命令会显示该文件存在于你的本地文件系统中。

如果你想从版本库和你的本地系统中删除该文件,省略 --cached 选项。

接下来,用 git add 命令将 .gitignore 添加到暂存区:

git add .gitignore

最后,用 git commit 命令提交 .gitignore 文件:

git commit -m "update ignored files"

Reference:https://www.freecodecamp.org/chinese/news/gitignore-file-how-to-ignore-files-and-folders-in-git/文章来源地址https://www.toymoban.com/news/detail-754884.html

到了这里,关于.gitignore 文件——如何在 Git 中忽略文件和文件夹详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 忽略指定文件或文件夹

    1. 在.gitignore中添加忽略的文件 2. 然后在该目录执行  注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。  

    2024年02月11日
    浏览(52)
  • git忽略.idea文件夹

    1.修改**.gitignore**文件 在最后一行添加 2.打开git bash终端 重点: --cached不会把本地的.idea删除 git add . git commit -m ‘忽略idea’ git pull git push

    2024年02月13日
    浏览(41)
  • git提交时忽略文件及文件夹方法

    如果要忽略的文件没有被跟踪过,可以直接在.gitnore文件中写要忽略的内容即可: .gitignore内容: 如果要忽略的文件已经是被跟踪状态,则需要先把本地缓存删除,变成未跟踪状态,然后再提交。 就是这些内容。

    2024年02月12日
    浏览(47)
  • idea git 提交 忽略文件或者文件夹

    方式1. 右键文件或者文件夹 git - Add to .gitignore   即可忽略 你会发现在.git/info/exclude 文件中 出现刚刚添加的忽略文件 # git ls-files --others --exclude-from=.git/info/exclude # Lines that start with \\\'#\\\' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if yo

    2024年02月13日
    浏览(43)
  • git 忽略 node_modules 文件夹

    git 忽略 node_modules 文件夹 在开发过程中,如果不想跟踪 node_modules 文件中的许多更改,可以在项目中创建一个 .gitignore 文件,用来设置 git 忽略该文件夹。 忽略根文件夹中的 node_modules 文件夹 文件结构: .gitignore 中提到的文件/文件夹不会被 git 跟踪 。 所以要忽略 node_modules,

    2024年02月12日
    浏览(59)
  • 如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)

    首先,需要用到的这个工具: 百度 密码:qwu2 蓝奏云 密码:2r1z 04文件夹里面有只有1个名称为\\\"1\\\"的文件夹,“1”里面有“2”,“2”有“3”,“3”有“4”,从“1”开始,都有5个兔兔的图片,这是“1”里面的文件夹结构,现在要做的就是忽略文件夹结构,提取出全部的兔兔

    2023年04月10日
    浏览(89)
  • git如何使用.gitignore文件设置忽略文件规则

    我们使用git进行版本控制的过程中,会希望一些文件不要进行提交,那这个时候就可以利用一些方法达到这个目的,这篇文章讨论一下如何使用.gitignore文件来进行忽略的方法。 先简单讨论一下常用的.gitignore文件编写规则,其实比较像正则表达式中的一些内容。 一行表示一个

    2024年02月03日
    浏览(43)
  • 【转】git如何使用.gitignore文件设置忽略文件规则

    目录 一.前言 二.讨论一下.gitignore文件规则 三.具体.gitignore文件写法示例 四.讨论一下.gitignore文件规则的生效优先级 五.其他 一.前言 我们使用git进行版本控制的过程中,会希望一些文件不要进行提交,那这个时候就可以利用一些方法达到这个目的,这篇文章讨论一下如何使用

    2024年01月17日
    浏览(67)
  • git如何忽略指定文件以及gitignore相关知识

    文章概要 :本文主要介绍了git中如何忽略指定文件,包括已经commit了的文件。解释了gitignore文件的写法以及提供了常见的gitignore模版。 本文内容来自:谷流仓AI - ai.guliucang.com 在平常写代码使用git的过程中,我们项目有些文件是不适合提交到仓库的,因此需要让git忽略这些文

    2024年04月25日
    浏览(30)
  • idea提交代码到git或svn上时,怎么忽略.class、.iml文件和文件夹等不必要的文件

    在Setings– Editor -- File Types --Ignore files and folders中添加需要忽略的文件和文件夹: 注意事项: 千万不要忽略.class文件, 千万不要忽略.class文件, 千万不要忽略.class文件, 重要的事说三遍,因为如果把class文件也忽略的话,就会导致java自带的类大批量报错,如果要忽略class文

    2024年03月24日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包