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

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

欢迎来到学了么社区,我是fatboss

学了么社区,营造专业的学习环境,完善专业的学习资料,打造一个属于学习的网站,目前只开发计算机编程语言模块,可以微信加群(搜索微信号xuelem)进行学习讨论。

Git 是一个流行的版本控制系统。开发人员通过它可以在项目上进行协作。
Git 允许你跟踪你在一段时间内对项目所做的修改。除此之外,如果你想撤销某个改动,它还可以让你恢复到以前的版本。

Git 的工作方式是,你用 git add 命令在项目中添加文件,然后用 git commit 命令提交文件。
当你作为团队的一员在一个项目上工作时,有时你不想与他人分享项目的某些文件或部分。
换句话说,你不想把这些特定的文件包含或提交到项目的主版本中。这就是为什么你可能不想在 git add 命令中使用句号 .,因为这样做会提交当前 Git 目录中的每一个文件。
当你使用 git commit 命令时,每一个文件都会被添加——这也包括那些不需要或不应该提交的文件。
你可能想让 Git 忽略特定的文件,但没有 git ignore 命令来实现这一目的。

那么,如何告诉 Git 忽略和不追踪特定的文件呢?用一个 .gitignore 文件。

在这篇文章中,你将了解什么是 .gitignore 文件,如何创建它,以及如何使用它来忽略文件和文件夹。你还会看到如何忽略一个先前提交的文件。

以下是我们要介绍的内容:

什么是 .gitignore 文件 如何创建一个 .gitignore 文件 在 .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 文件:

下面是linux指令,windows可以直接查看隐藏文件
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"

windows的同学可以看这里

https://blog.csdn.net/sunxiaoju/article/details/86495234文章来源地址https://www.toymoban.com/news/detail-789569.html

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

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

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

相关文章

  • 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日
    浏览(62)
  • git提交时忽略文件及文件夹方法

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

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

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

    2024年02月12日
    浏览(69)
  • Git基础教程:配置.gitignore文件以忽略指定的文件和文件夹(嵌入式)

    Git基础教程:配置.gitignore文件以忽略指定的文件和文件夹(嵌入式) 在进行Git版本控制时,经常需要忽略某些文件或文件夹,以避免将它们包含在版本控制中。这在嵌入式系统开发中尤其重要,因为项目中可能包含大量生成的文件、临时文件和编译输出等,这些文件不应该

    2024年02月08日
    浏览(51)
  • 【GIT问题解决】---- 在【.gitignore】中添加了忽略文件或文件夹后不生效

    1. 出现问题 在已经提交过的 GIT 管理的项目中,在 .gitignore 文件中新增一些忽略的文件或者文件夹,或者直接新建 .gitignore 文件之后,新增的内容不生效。 2. 实例截图 3. 实例描述 lifecycle.js 文件已新增到 .gitignore 文件中,但是 lifecycle.js 文件修改的时候依然会上传; yarn.loc

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

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

    2024年03月24日
    浏览(78)
  • 如何查看某个文件夹的git修改记录

    要查看某个文件夹在Git中的修改记录,你可以使用 git log 命令,并指定文件夹的路径。下面是具体的步骤: 打开命令行或终端。 切换到你的Git仓库的根目录。 执行以下命令,其中 path/to/folder 是你想要查看修改记录的文件夹的相对路径: 这个命令会显示该文件夹及其内部文

    2024年03月15日
    浏览(68)
  • 如何把隐藏的git文件夹显示出来

    1.点击我的电脑 2.点击左上角的查看,勾选隐藏的项目,再回到文件夹就可以查看.git 文件夹  

    2024年02月08日
    浏览(61)
  • git小技巧,如何从其他分支merge个别文件或文件夹

    在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发。 功能分为2个分支,分别为A、B。 A上面有个列表页功能 B上面有个详情页功能,还有个系统消息功能 产品经理说先上列表功能,于是我们就开

    2024年02月07日
    浏览(45)
  • git如何仅合并项目下的某个文件夹

    假设目前在做的一个项目名为demoproject,目前版本为v1.0.0,标准开发都是在demoproject上进行的,但是有一个客户需要做定制化,需要将项目中的一些信息改为客户的,于是基于demoproject拉了一个v1.0.0-custom,然后将这个v1.0.0-custom交付给了客户。 过了一段时间,客户又提了新的需

    2024年01月21日
    浏览(76)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包