.gitignore
/doc/
过滤整个文件夹。
*.zip
过滤所有.zip文件。
/doc/info.txt
过滤某个具体的文件。
这样,push的时候,就不会上传了,git仓库中就没有了。
假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么我们就需要使用:
/mtk/
!/mtk/one.txt
忽略文件的原则是:
a.忽略操作系统自动生成的文件,比如缩略图等;
b.忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
c.忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
举个栗子:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
再看一个案例
# Created by .ignore support plugin
# Logs 日志文件
*.log
# Runtime 缓存文件
Admin/Runtime
Api/Runtime
Cron/Runtime
# config 配置文件
Admin/Conf/config.php
Api/Conf/config.php
Cron/Conf/config.php
# upload 图片文件
Public/site_upload
# vendor 插件文件
vendor
!vendor/composer
!vendor/autoload.php
!vendor/bin
# other 编辑器产生的文件
.idea/
.DS_Store
.buildpath
.project
不得不说,phpstorm的ignore提示的很到位。
.gitignore规则不生效
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'