.gitignore
/doc/
过滤整个文件夹。
*.zip
过滤所有.zip文件。
/doc/info.txt
过滤某个具体的文件。
这样,push的时候,就不会上传了,git仓库中就没有了。
假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么我们就需要使用:
/mtk/!/mtk/one.txt
忽略文件的原则是:
a.忽略操作系统自动生成的文件,比如缩略图等;b.忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;c.忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
举个栗子:
# Windows:Thumbs.dbehthumbs.dbDesktop.ini# Python:*.py[cod]*.so*.egg*.egg-infodistbuild# My configurations:db.inideploy_key_rsa
再看一个案例
# Created by .ignore support plugin# Logs 日志文件*.log# Runtime 缓存文件Admin/RuntimeApi/RuntimeCron/Runtime# config 配置文件Admin/Conf/config.phpApi/Conf/config.phpCron/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'