在项目开发中,有时候我们并不需要git跟踪所有文件,而是需要忽略掉某些指定的文件或文件夹,怎么操作呢?我们分两种情况讨论:
1. 要忽略的文件之前并未被git跟踪
这种情况常用的方法是在项目的根目录下创建和编辑.gitignore文件(即和.git文件夹同级)。使用记事本打开这个文件并编辑,添加你想要忽略的文件或文件夹的相对路径到.gitignore文件中,每个路径占一行。规则如下:
- 使用斜杠(/)指定文件夹路径,如
/path/to/folder/
- 使用星号(*)匹配任意字符,如
*.txt
。 - 使用叹号(!)表示排除某些文件或文件夹,如
!/lib/file.txt
注意:.gitignore文件并不是后缀为txt的文本文档,它的类型是txtfile!只是使用记事本编辑内容
这种文件的新建方式是,在界面空白处右键,点击新建——文本文档——命名时把文件扩展名.txt删掉,只输入名字.gitignore
这个地方千万不能理解错!在Git中,忽略文件必须命名为.gitignore
而不是.gitignore.txt
。如果创建了一个名为.gitignore.txt
的文件,Git不会识别它作为忽略规则文件,而是视为一个普通的文本文档,那自然也不会识别里面的内容,就无法起到忽略该文件中列出的文件的作用。
再使用git add命令将这个文件添加到git中,使用git commit -m'修改说明'提交修改
如果你和我一样使用git add .gitignore 命令添加该文件到git时,报错:
fatal: pathspec '.gitignore' did not match any files
那么还有一种创建忽略文件的方式,不需要再手动添加忽略文件到git,那就是在git界面运行如下指令
touch .gitignore
运行完这条指令以后,当前根目录会自动创建忽略文件,并且无需手动添加
再提交修改
我们可以看到,忽略文件中列出的文件和文件夹都没有出现在git 管理的列表中(忽略的意思是git不关心这个文件的任何状态,这个地方一定要理解到位,Untracked files中列出的是git在管理但是未追踪的),说明我们的目的达成了。
2. 忽略已经跟踪的文件
如果文件已经被Git跟踪,那么即使它们被添加到了.gitignore
文件中,Git仍然会继续跟踪这些文件。要停止对这些文件的跟踪,你需要先从版本库中移除这些文件,然后再添加到.gitignore
文件
git rm --cached example.txt