.gitignore
说明:提交忽略规则文件
位置
- 项目各个目录
- .git/info/exclude
- git config --global core.excludesfile ~/.gitignore
优先级
git检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
- 从命令行中读取可用的忽略规则;
- 当前目录定义的规则;
- 父级目录定义的规则,依次递推;
- $GIT_DIR/info/exclude 文件中定义的规则;
- core.excludesfile中定义的全局规则。
语法
- 在.gitigore 中,每一行指定一个忽略规则 ;
- 标准的glob模式匹配;
- 井号#表示注释信息;
- 星号*通配多个字符,双星**匹配任意中间目录;
- 问号?通配单个字符;
- 方括号[]匹配列表中任何一个字符
- 感叹号!不忽略匹配到的文件或目录
简单说明
# 表示此为注释,将被Git忽略
*.a 表示忽略所有 .a 结尾的文件
!lib.a 表示但lib.a除外
!src/**/*.o 表示不忽略src目录(递归)下.o文件
.gitmodules
[submodule "package/googletest"]
path = package/googletest
url = ***.git
branch = develop
[submodule "package/qt"]
path = package/qt
url = ***.git
删除子模块
基本原理
- 删除模块目录
- 删除.gitmodules中配置字段
- 删除.git/modules对应文件夹
- 删除.git/config中配置字段
- 删除索引区记录
实际操作
- git submodule deinit -f <path> 此步骤完成了基本原理中4,并且完成了1步骤克隆下来的文件,但会残留文件
- git reset --hard HEAD 或者 git rm --cached <路径> git rm --cached .gitmodules,完成步骤5
- 删除.git/modules对应文件夹和删除.gitmodules中配置字段