.gitignore
是一个非常重要的文件,它可以帮助我们在使用Git进行版本控制时,忽略掉不需要跟踪的文件或者文件夹。下面就让我们详细了解一下.gitignore
文件的使用方法。
什么是.gitignore文件?
.gitignore
文件是一个文本文件,它告诉Git哪些文件或目录不应该被添加到Git仓库中。换句话说,当我们运行git add *
命令时,那些在.gitignore
文件中列出的文件或目录将不会被添加到版本控制中。
如何创建.gitignore文件?
创建.gitignore
文件很简单,只需要在你的项目根目录下创建一个名为.gitignore
的文件即可。你可以使用任何文本编辑器来创建和编辑这个文件。
touch .gitignore
.gitignore文件的语法
一、基本规则
- 每一行指定一个忽略的文件或目录。
- 你可以使用
#
来添加注释。空行和以#开头的行会被忽略。 - 你可以使用
*
作为通配符。? 代表任意一个字符,[abc] 代表字符a、b或c,[0-9]代表数字0到9,**/ 表示0个或多个目录。 - 你可以使用
/
来忽略路径。 - ! 开头的规则表示否定,即不忽略匹配该规则的文件。
二、示例
假设我们的项目目录结构如下:
project/
|-- src/
| |-- main.py
| |-- test.py
|-- build/
| |-- main.o
| |-- test.o
|-- lib/
| |-- lib1/
| | |-- __pycache__/
| | |-- file1.cpython-36.pyc
| | |-- file2.cpython-36.pyc
| |-- lib2/
| | |-- __pycache__/
| | |-- file3.cpython-36.pyc
| | |-- file4.cpython-36.pyc
|-- .gitignore
我们想要忽略所有编译生成的.o文件,以及build目录下的所有文件,同时忽略所有的__pycache__
目录和其中的.pyc文件。那么,我们可以这样编写.gitignore文件:
# 忽略所有 .o 文件
*.o
# 忽略 build 目录下的所有文件
build/*
# 忽略所有的 __pycache__ 目录和其中的 .pyc 文件
__pycache__/*.pyc
注意,这里的__pycache__/*.pyc
必须放在*.o
之后,因为.gitignore文件的处理顺序是从上到下的,如果*.o
在__pycache__/*.pyc
之前,那么__pycache__/*.pyc
就不会生效了。
三、特殊规则
- 如果.gitignore文件中的规则无法匹配某个文件,那么这个文件不会被忽略。
- 如果一个文件已经被Git跟踪,那么.gitignore文件中的规则对它无效。如果想要让.gitignore对已经被跟踪的文件生效,需要先使用
git rm --cached <file>
命令取消跟踪。 - 如果一个文件被.gitignore忽略,那么它不会出现在未跟踪文件列表中,也不会被添加到版本库中。
- 如果一个文件被.gitignore忽略,但是通过
git add -f <file>
或git add .
命令强制添加,那么这个文件会被跟踪。
注意事项
- 如果你已经追踪了(tracked)一个文件,然后你把这个文件添加到
.gitignore
文件中,那么这个文件不会被自动从Git仓库中删除。在这种情况下,你需要手动删除这个文件。 .gitignore
文件本身也应该被添加到Git仓库中。这样其他人在克隆这个仓库时,也可以使用到相同的忽略规则。- 如果你有一些特定的忽略规则,而这些规则只对你自己有效,不应该对其他人有效,那么你可以把这些规则添加到
.git/info/exclude
文件中,这个文件的语法和.gitignore
文件相同,但是它不会被添加到Git仓库中。
以上就是.gitignore
文件的基本用法,希望对你有所帮助。