在小程序开发过程中,利用gitHub进行项目管理,其中的小程序配置文件会产生冲突,可以使用.gitignore文件配置,在上传gitHub的时候忽略不需要上传的文件。
在项目的根目录下建立.gitignore文件:(以indows系统的git为例)
在根目录右键选择 Git Bash,打开命令行。
输入touch .gitignore
,会自动生成一个.gitignore文件。
设置过滤规则:
1、跳过单个文件:
比如我需要跳过 project.config.json
这个文件,可以这样写:
project.config.json
2、跳过某个格式的文件:
比如 .zip
、 .config
、 .sln
格式的文件,代码如下:
*.zip *.config *.sln
3、跳过某个文件夹:
比如跳过 Debug 文件夹,代码如下:
Debug/
4、过滤某个文件夹中的某个文件或者某个格式:
Debug/test.exe Debug/*.zip
5、指定添加某个文件、文件夹或者格式:(前面加感叹号"!")
!/mtk/one.txt !/mtk/ !*.zip
开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
为什么要有两种规则呢?如果我们只需要管理 /mtk/
目录中的 one.txt
文件,这个目录中的其他文件都不需要管理。那么我们就可以使用:
/mtk/ !/mtk/one.txt
6、[] 过滤多个文件或者类型
# cat .gitignore *.[oa] *~
第一行告诉 Git 忽略所有以 .o
或 .a
结尾的文件。
一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。
第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。
此外,你可能还需要忽略 log
,tmp
或者 pid
目录,以及自动生成的文档等等。要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
以下是个人对于配置 .gitignore 的一些心得:
1、配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
2、示例:
(1)规则:fd1/*
说明:忽略目录 fd1
下的全部内容;注意,不管是根目录下的 /fd1/
目录,还是某个子目录 /child/fd1/
目录,都会被忽略;
(2)规则:/fd1/*
说明:忽略根目录下的 /fd1/
目录的全部内容;
(3)规则:
/* !.gitignore !/fw/bin/ !/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore
文件、根目录下的 /fw/bin/
和 /fw/sf/
目录;
3、文件 .gitignore 的格式规范如下:
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的、简化了的正则表达式。星号(*)匹配零个或多个任意字符;
[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
问号(?)只匹配一个任意字符;
如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
再看一个 .gitignore 文件的例子:
# 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt
其他信息可以直接 man gitignore 查看。
未经允许不得转载:w3h5 » Github利用.gitignore文件忽略不需要上传的文件
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/231276.html