文章目录
git — gitignore
一、gitignore简介
- 每个Git项目中都需要一个 “.gitignore” 文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
比如我们算法项目中的数据集,它在我们项目中是很重要的,但是它占的内存也是很大的,所以一般我们用Git管理的时,可以在 .gitignore 中记录来不提交这些文件。
二、gitignore使用
- .gitignore 越早创建越好,最好当我们创建项目时时便创建该文件。
附上github官方提供的针对每一种项目所对应的 .gitignore 文件内容的链接:https://github.com/github/gitignore
1. ignore 语法
# 下面是一些.gitignore文件忽略的匹配规则:
*.a # 忽略所有 .a 结尾的文件
!lib.a # 忽略 lib.a 除外的文件
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
2. gitignore 如何在项目中正常使用
-
当我们新建一个项目时候,想要使用 gitignore 的话,操作步骤如下:
- 创建项目
- git init 来初始化 git 来管理项目
- 在项目的根目录下创建 .gitignore 文件
- 在 .gitignore 中填写不需要 git 来管理的文件
- 之后 add / commit 的过程便不会提交不需要管理的文件了
-
项目中需要忽略的文件
一般忽略以下文件不需要添加到 git 中:- .idea 文件夹,此文件夹是用来保存开发工具的设置信息。
- .gradle 文件夹,此文件夹是用来保存gradle的依赖信息。
- 所有的 build 文件夹,build文件夹是用来保存编译后的文件目录。
- 所有的 .iml 文件,是用来保存开发工具信息。
- local.properties 文件,是用来保存项目依赖信息。
例子如下:
如图,我创建了一个名为 gittest 的项目,首先git init,然后在里面只放了 hello.txt 和 空的.gitignore,
使用 git status 查看 git 状态,显示这两个文件
这时候我在 .gitignore 中填写 *.txt 内容,继续使用 git status 来查看,只显示一个文件, hello.txt 文件已经没有了,表面 git 已经忽略 hello.txt 文件了。
对于版本管理工具,既然有正常步骤,那肯定有非正常情况。
你们周围有没有小伙伴经常会说,哎呀我的代码又被 git 搞没了,哥哥你帮我找找呗,帮我版本回退呗。同样 gitignore 这种操作我也是爬坑好几次才会操作。
博主将:不需要 git 管理的文件误提交到了 git 中的情况称为非正常步骤
3. 已提交到 git 中文件想要忽略
具体步骤在下面的注意点中
. ignore 注意点
.gitignore只能忽略那些原来没有被track的文件(即没有add到),如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
输入:
git rm -r --cached filePath
git commit -m “remove xx”
或者:
git rm -r --cached .
git add .
git commit -m “update .gitignore”
来解释下几个参数
-r 是删除文件夹及其子目录
–cached 是删除暂存区里的文件而不删除工作区里的文件,
第一种是删除某个文件,第二种方法就把所有暂存区里的文件删了,再加一遍,相当于更新了一遍。