有些时候,你必须把某些文件放到Git工做目录中,但又不能提交它们,好比保存了数据库密码的配置文件啦,等等,每次git status都会显示“Untracked files …”,有强迫症的童鞋内心确定不爽。git
好在Git考虑到了你们的感觉,这个问题解决起来也很简单,在Git工做区的根目录下建立一个特殊的.gitignore文件,而后把要忽略的文件名填进去,Git就会自动忽略这些文件。github
不须要从头写.gitignore文件,GitHub已经为咱们准备了各类配置文件,只须要组合一下就可使用了。全部配置文件能够直接在线浏览:https://github.com/github/gitignore数据库
忽略文件的原则是:编辑器
举个例子:测试
假设你在Windows下进行Python开发,Windows会自动在有图片的目录下生成隐藏的缩略图文件,若是有自定义目录,目录下就会有Desktop.ini文件,所以你须要忽略Windows自动生成的垃圾文件:ui
# Windows: Thumbs.db ehthumbs.db Desktop.ini
而后,继续忽略Python编译产生的.pyc、.pyo、dist等文件或目录:spa
# Python: *.py[cod] *.so *.egg *.egg-info dist build
加上你本身定义的文件,最终获得一个完整的.gitignore文件,内容以下:操作系统
# Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa
最后一步就是把.gitignore也提交到Git,就完成了!固然检验.gitignore的标准是git status命令是否是说“working directory clean”。code
使用Windows的童鞋注意了,若是你在资源管理器里新建一个.gitignore
文件,它会很是弱智地提示你必须输入文件名,可是在文本编辑器里“保存”或者“另存为”就能够把文件保存为.gitignore
了。server
$ git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt"
忽略文件夹写法
经测试发现,若要忽略一个文件夹下的部分文件夹,应该一个一个的标示。可能有更好的方法。 若test下有多个文件和文件夹。若要ignore某些文件夹,应该这个配置.gitignore文件。若test下有test1,test2,test3文件。要track test3,则.gitignore文件为: test/test1 test/test2 !test/test3 若为: test/ !test/test3 ,则不能track test3。 Git 中的文件忽略 1. 共享式忽略新建 .gitignore 文件,放在工程目录任意位置便可。.gitignore 文件能够忽略本身。忽略的文件,只针对未跟踪文件有效,对已加入版本库的文件无效。 2. 独享式忽略针对具体版本库 :.git/info/exclude针对本地全局: git config --global core.excludefile ~/.gitignore 忽略的语法规则: (#)表示注释 (*) 表示任意多个字符; (?) 表明一个字符; ([abc]) 表明可选字符范围 若是名称最前面是路径分隔符 (/) ,表示忽略的该文件在此目录下。 若是名称的最后面是 (/) ,表示忽略整个目录,但同名文件不忽略。 经过在名称前面加 (!) ,表明不忽略。 例子以下: # 这行是注释 *.a # 忽略全部 .a 伟扩展名的文件 !lib.a # 可是 lib.a 不忽略,即时以前设置了忽略全部的 .a /TODO # 只忽略此目录下 TODO 文件,子目录的 TODO 不忽略 build/ # 忽略全部的 build/ 目录下文件 doc/*.txt # 忽略如 doc/notes.txt, 可是不忽略如 doc/server/arch.txt