Git忽略提交的方法及Git忽略规则(四)

在项目目录下有很多万年不变 的文件目录,如css、js、image等,或者还有一些目录即便有改动,我们也不想让其提交到远程仓库的文档,比如日志、临时文件、编译中间件等,此时我们就可以使用"忽略文件"机制来忽略这些文件的提交。

Git忽略文件提交的方法

1. 在Git项目中定义.gitignore文件

    在项目的某个文件夹下定义.gitignore文件,它用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效。

注意:改文件没有文件名,没有办法直接在Windows目录下直接创建,可以通过命令行Git Bash来touch创建

常见规则写法有如下几种:

      1) /js/             过滤整个文件夹

      2) *zip                过滤所有.zip文件

      3) /mtk/do.js      过滤某个具体文件

      4) !index.php     不过滤具体某个文件

注意:

     .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交

​
git rm -r --cached .
git add .
git commit -m ‘update .gitignore文件’

​

2. 定义Git全局的.gitignore文件

   如果一直使用某个开发工具进行开发项目,则相对于特定项目的忽略文件,所有的项目均要忽略的文件,则可以使用配置全局忽略文件。

  使用命令

   git config --global core.excludesfile ~/.gitignore

   该配置信息位于~/.gitignore。

   整体的操作步骤与上述特定于项目的.gitignore是一致的。

3. 在Git项目的设置中指定排除文件

     这种方式只是临时指定该项目的行为,需要编辑当前项目下的 .git/info/exclude 文件,然后将需要忽略提交的文件写入其中。
     注意:这种方式指定的忽略文件的根目录是项目根目录。

忽略规则

 在 .gitignore 文件中,每一行的忽略规则语法如下:

       1. 空格不匹配任意文件,可作为分隔符,可用反斜杠转义

       2. #开头的文件标识注释,可以使用反斜杠进行转义

       3. ! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义

       4. / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件

       5. / 开始的模式匹配项目跟目录

       6. 如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录

       7. ** 匹配多级目录,可在开始,中间,结束

       8. ? 通用匹配单个字符

       9. [] 通用匹配单个字符列表

如有不足,欢迎留言指正哟。望不吝赐教。。。

发布了171 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/duan196_118/article/details/104722891