#一、了解.gitignore
在项目开发过程中,难免会生成一些中间文件。很多时候一个项目包含多个文件,当借助git工具进行版本控制时,如果一个一个添加太麻烦,通常是采用git add .语句将项目中的所有文件一次性添加,此时就会出现将一些不需要的中间文件上传到github的情况。在这个时候,.gitignore文件的忽略规则就能起到很大的帮助,借助其忽略规则,我们可以把不想提交的文件都过滤掉。
一般在github上创建代码仓库时可以选择是否添加.ignore文件,这里要养成一个好习惯,每次新建仓库都记得添加.gitignore文件,如果忘记了,解决办法可参考此链接:忘记添加.gitignore文件该怎么办?
#二、过滤规则
- 一行只能出现一个语句。
- 规则的执行顺序是从上到下。
- 所有空行或者以# 开头的行都会被 Git 忽略。
- 匹配模式如果是末尾跟“/”则表示过滤目录。
- *匹配多个字符。
- 模式前使用“!”表示忽略模式以外的文件或目录。
- ?匹配单个字符。
- "[]"匹配放括中的任一字符
1.单语句举例如下:
#过滤项目下的有所.c文件
*.c
#过滤整个项目文件
/*
#过滤目录/filename/
/filename/
#过滤/目录下的所有.cpp文件,无法过滤/filename/name.cpp
/*.cpp
#保留所有的.cpp文件
!*.cpp
#保留/filename/目录及其下所有文件
!/filename/
#保留/目录下所有.c和.o文件
!/*.[co]
2.多语句规则:规则具有保守模式和开放模式两种,可以结合使用。
#过滤/目录下所有文件,但只保留.cpp文件
/*
!/*.cpp
#语句执行顺序从上到下,下面那条语句的执行结果将使上面那条语句无效。整个项目的文件都将被过滤。
!/*.cpp
/*
3.易错点。
#注意:这里单独介绍一种特殊情况,
#过滤/~/文件下的所有目录,但是保留/~/目录下的所有.cpp文件
/*/*
!/*/*.cpp
#如果你还想保留/~/~/目录下的所有.cpp文件,那么这么写就是错误的
#要先保留目录级小的文件,再保留目录级别较大的。
/*/*/*
!/*/*/*.cpp
#如下是正确写法
/*/*/*
!/*/*/*.cpp
/*/*
!/*/*.cpp
#下面这条语句将无效,因为一行只能出现一个语句。
*.c #注释内容
#在用多语句规格时应该注意上下语句的目录等级应该一致。
#正确语句,上下都是三级目录
/filename1/filename2/*
!/filename1/filename2/*.cpp
#错误语句,上面二级目录,下面是三级目录
/filename1/filename2/
!/filename1/filename2/*.cpp
#错误语句,上面是二级目录,下面是三级目录
/filename1/*
!/filename1/filename2/*.cpp
#过滤/a1/b/,/a2/b/,/b/等等目录下所有文件
b/*
#过滤/b/下的所有目录
/b/*
4.每次修改完.gitignore文件后,运行以下命令执行更改。
详情请参考:修改了.gitignore文件后该怎么办?
git rm -r --cached .
git add .
git commit -m "描述性语句"
git push
欢迎评论区留言提问。