git中 gitignore 忽略文件操作
通常,.gitignore文件被放置在存储库的根目录中。根目录也称为父目录和当前工作目录。根文件夹包含组成项目的所有文件和其他文件夹。也就是说,您可以将它放在存储库中的任何文件夹中。你甚至可以有多个.gitignore文件。
在macOS或者Linux系统中创建.gitignore文件可以使用命令行,打开终端,然后使用cd命令导航到包含项目的根文件夹,并输入以下命令为您的目录创建一个.gitignore文件:
>touch .gitignore
默认情况下,名称前面带点(.)的文件是隐藏的。
单独使用ls命令时,隐藏文件是不可见的。要从命令行查看所有文件,包括隐藏文件,使用-a标志和ls命令,如下所示:
>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的目录(包括该目录中的其他文件和其他子目录)。
需要注意的是,如果只写文件的名称,或者只写目录的名称而不加斜杠/,那么该模式将匹配具有该名称的任何文件或目录:
# matches any files and directories with the name test
>test
如果您想忽略以特定单词开头的任何文件或目录,该怎么办?
假设您希望忽略所有名称以img开头的文件和目录。要做到这一点,你需要指定你想要忽略的名称,后面跟着*通配符选择器,就像这样:
>img*
该命令将忽略所有名称以img开头的文件和目录。
但是,如果您想忽略任何以特定单词结尾的文件或目录,该怎么办呢?
如果希望忽略以特定文件扩展名结尾的所有文件,则需要使用*通配符选择器,后面跟着要忽略的文件扩展名。
例如,如果你想忽略所有以.md文件扩展名结尾的markdown文件,你可以在.gitignore文件中添加以下内容:
>*.md
该模式将匹配项目中任何以.md扩展名结尾的文件。
前面介绍了如何忽略以特定后缀结尾的所有文件。如果您想要做一个例外,并且有一个带有该后缀的文件不想忽略,会发生什么情况呢?
假设你在.gitignore文件中添加了以下内容:
.md
该模式忽略所有以.md结尾的文件,但您不希望Git忽略README.md文件。
要做到这一点,您需要使用带有感叹号的否定模式,!,来使该文件失效,否则该文件将会被忽略:
# ignores all .md files
.md # does not ignore the README.md file
!README.md
对于.gitignore文件中的这两种模式,所有以.md结尾的文件都会被忽略,除了README.md文件。
要注意的是,如果忽略整个目录,此模式将不起作用。
假设你忽略了所有的测试目录:
test/
假设在一个测试文件夹中,有一个文件,例如.Md,你不想忽视的。
你不能像这样对一个被忽略的目录中的文件进行否定:
# ignore all directories with the name test
test/ # trying to negate a file inside an ignored directory won't work
!test/example.md
如何忽略之前提交的文件
最好的做法是创建一个.gitignore文件,其中包含创建新存储库时要忽略的所有文件和不同的文件模式——在提交之前。
Git只能忽略尚未提交到存储库的未跟踪文件。
如果您在过去已经提交了一个文件,但希望没有提交该怎么办?
假设您不小心提交了一个存储环境变量的.env文件。
你首先需要更新.gitignore文件以包含.env文件:
# add .env file to .gitignore
echo ".env" >> .gitignore
现在,你需要告诉Git不要跟踪这个文件,把它从索引中删除(如果是文件夹需要添加-r选项):
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"
git中 gitignore 忽略文件操作的更多相关文章
- 『现学现忘』Git基础 — 19、在Git中进行忽略文件操作
目录 1.忽略文件说明 2.忽略文件的原则 3..gitignore忽略规则 4.忽略文件的三种方式 (1)忽略单个仓库中的文件(远程共用) (2)忽略单个仓库中的文件(本地使用) (3)全局忽略 1 ...
- Git中.gitignore忽略文件(maven项目)
使用情景: 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们 解决方案: 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略 ...
- git中如何忽略文件上传?
使用原因:至于我们为什么要使用git忽略文件,原因很多.就比如我自己的情况吧!自己一个人多地方开发,为了代码同步,这样很方便.但是有个问题就是,我创建 的是开源项目,上面有一些服务器上面的配置信息,这 ...
- 在GIT 中增加忽略文件夹与文件
1,在工作目录点右建选择 2,输入touch .gitignore 在工作目录就生成了一个“.gitignore”文件. 3,然后在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了 ...
- Git中.gitignore, 忽略追踪
在目录下 创建: .gitignore文件,将不需要被追踪的文件地址, 写在该文件中, 此时git软件就不会追踪列出的文件进行版本同步: windows不允许创建没有文件名的文件,可以用编辑器创建.g ...
- Git中.gitignore忽略规则
# 此为注释 – 将被 Git 忽略 *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TO ...
- Git中.gitignore文件不起作用
Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍 在Studio里使用Git管理代码的过程中,可以修改.gitignore文件中的标示的方法来忽略开发者想忽略掉的文件或目录 ...
- git用.gitignore忽略指定文件
.gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得. 1.配置语法: 以斜杠“/”开头 ...
- git clean 删除忽略文件 和 未被跟踪文件及文件夹
git clean 删除忽略文件 和 未被跟踪文件及文件夹 概念 首先我们需要认清 忽略的文件 和 未被跟踪的文件 忽略的文件:.gitignore 中忽略的文件 未被跟踪的文件:没有被忽略,但是还没 ...
随机推荐
- 清北学堂 2020 国庆J2考前综合强化 Day3
目录 1. 题目 T1 石头剪刀布 题目描述 Sol T2 铺地毯 题目描述 Sol T3 数列游戏 题目描述 Sol T4 数星星 题目描述 Sol 2. 算法 -- 动态规划 1. 概述 2. 线 ...
- 跳转语句break、continue、return
1.break 语句 概念: break语句在循环中的作用是终止当前循环,在switch语句中的作用是终止switch. 示例: 输出结果: 2.continue 语句 概念: continue语句 ...
- 编码GBK的不可映射字符,最新版sublime
最近开始学java了,跟着老师写一个hello world,刚执行javac就报错:编码GBK的不可映射字符 然后去网上找了一堆,总结来说的就是编码不对,最新版的sublime只要设置utf-8保存即 ...
- vue 将markdown字符串转html、修改主题、生成目录
前言 将 markdown 字符串转成 html 显示出来,同时把目录也提取出来一起显示.可以使用 marked 来读取 markdown 字符串解析成 html marked官网:https://m ...
- fast json 乱序问题解决过程
解决问题:保存到redis中的jsonstring在转回jsonObject的时候乱序: 解决方案:https://inlhx.iteye.com/blog/2312512 解决过程: 1 看fast ...
- Spring 08: AOP面向切面编程 + 手写AOP框架
核心解读 AOP:Aspect Oriented Programming,面向切面编程 核心1:将公共的,通用的,重复的代码单独开发,在需要时反织回去 核心2:面向接口编程,即设置接口类型的变量,传入 ...
- 弹簧高跷题解---双向DP---DD(XYX)的博客
三 . 弹簧高跷 时间限制: 1 Sec 内存限制: 128 MB 题目描述.输入.输出 ----------- 方法 这道题用DP是可以解决的.因为每一次跳跃都与前一次跳跃有关, ...
- 圆形谷仓Circular Barn_Silver---(DP优化 / )队列 + 贪心(复杂度O(2n))---DD(XYX)的博客
目录 小数据 大数据 小数据 题目描述 农夫约翰有一个圆形的谷仓,谷仓分成了环形的n(3≤n≤1000)个房间,编号为1 , 2 , -- .每个房间有三个门,两个门通往两个相邻的房间,第三个门朝外. ...
- 【lwip】04-网络数据包流向
目录 前言 4.1 TCPIP分层与lwip数据共享 4.2 协议栈线程模型 4.3 pbuf 结构体 4.3.1 pbuf的标志位flags 4.4 pbuf的类型 4.4.1 PBUF_RAM类型 ...
- C#基础_变量的命名规则
变量: 1.作用 :可以让我们在计算机中存储数据 2.语法:变量类型 变量名=赋值: 3.常用的数据类型: int 整数类型 取值范围:最大2147483647;最小-214748364 ...