一、文件各种颜色代表的含义
文件颜色 | 含义 |
---|
红色 | 未加入git版本控制 | 绿色 | 已经加入git版本控制、暂未提交,一般新建的类会是绿色(从未提交过,提交过一次后,再次修改会是蓝色) | 白色 | 已经加入git版本控制、已提交、无改动 | 蓝色 | 已经加入git版本控制、已提交、有改动 | 灰色 | 已经加入git版本控制、提交时忽略,也就是.gitignore的作用 |
二、idea配置.gitignore后无法起作用 当你新建或者新修改了.gitignore的内容(比如:忽略target下的、配置文件等),但是在提交时仍然会看到很多杂乱的文件(比如:target下的、配置文件等,自己明明在.gitignore里边忽略了这些,但是没起作用),这是因为.gitignore只能忽略未被track的文件(其实.gitgnore是在跟踪git add时发挥的作用),如果某些文件已经被git版本控制(被track),则修改.gitignore是无效的。解决办法就是: 1. 先把本地缓存删除(改变成未track状态),在.idea同级目录打开Git Bash Here输入命令:git rm -r --cached . 此时所有文件(包括.gitignore)会变成红色(未加入git版本控制) 2. 输入命令git add . 将所有文件重新加入git版本控制,此时你修改的.gitignore内容已经生效 3. 然后就可以在idea提交窗口中看到自己修改的东西,不会再杂乱。 三、.gitignore文件怎么写
- 空行或是以#开头的行即注释行将被忽略
- 以斜杠 “/” 结尾表示目录
- 以星号 “*” 通配多个字符
- 以问号 “?” 通配单个字符
- 以方括号 “[]” 包含单个字符的匹配列表
- 以叹号 “!” 表示不忽略(跟踪)匹配到的文件或目录
- 可以在前面添加斜杠 “/” 来避免递归
- 举例:
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf
四、其他说明 在idea中要让文件不被提交到gitlab上,有两种办法: 1. 让文件是红色的,即没有进行git add操作(idea下是会自动被git add的),这个时候不受git版本控制,后边提交的时候也不会被提交,推送也不会被推送。 2. 文件受到版本控制,.gitignore文件也要受到版本控制,在.gitignore中忽略一些不被跟踪的文件,这个时候即使git add . 也不会全部跟踪,而是排除.gitignore里边的文件,然后后边提交的时候就不会被提交,推送也不会被推送。
|