Git
在提交到版本控制库的时候,应该对这些项目文件,进行过滤(使用 GIT 做 SCM 时,过滤文件位于项目根目录,名称为 .gitignore)。
.gitignore
# filter eclipse file
*.classpath
*.project
# filter eclipse dir
/.settings/
# filter idea file
*.iml
#filter idea dir
/.idea/
IDE 方言的项目文件
Eclipse : dir - .settings, files - .classpath .project
IntelliJ : dir - .idea, file 项目同名的 .iml
-
git 创建 .gitignore 文件 建立项目过滤规则
创建 .gitignore 设置跟踪和不跟踪那些文件
- 在项目根目录下建立 .gitignore 文件
- .gitignore文件过滤有两种模式,
开放模式
和保守模式
-
格式规范
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。 可以使用标准的 glob 模式匹配。 匹配模式最后跟反斜杠(/)说明要忽略的是目录。 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。 先编写开放模式,在编写保守模式,要不然,开放模式的规则会把保守模式的规则给覆盖了。 # 配置语法 以斜杠“/”开头表示目录; 以星号“*”通配多个字符; 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表; 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
-
开发模式负责设置过滤那些文件和文件夹
eg: # filter dir setting, 表示过滤这个文件夹 /mtk/ /target/ # filter file setting, 指定过滤某种类型的文件 *.zip *.rar *.via *.tmp *.err # 指定过滤某个文件 /mtk/do.c /mtk/if.h
-
保守模式负责设置那些文件[要被跟踪]不被过滤
eg: # not filter dir setting, 跟踪某个文件夹 !/pluto/mmi # not filter file setting, 跟踪某类文件 !*.c !*.h # 跟踪某个指定文件 !/pluto/mmi/features.h
-
config .gitignore simple rule
[开放模式与保守模式结合配置] eg: # 一个文件夹下有很多文件夹和文件,而只想跟踪其中的一个文件 /pluto/mmi/ !/pluto/mmi/features.h
-
-
强调
最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。
简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。
所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。