概要

在用git管理多人开发的项目的时候,总会不定时出现,一些非必要文件(如项目编译文件)加入版本管理。在提交代码合并代码的时候出现了一系列的问题。究其原因,就是没有很好的利用ignore文件,将一些特定文件从版本管理中剔除。本文将简要介绍一下,忽略文件的匹配规则,学习好了忽略规则,则可以随时剔除不需要的文件。

gitBash 创建.gitignore文件

1、打开gitBash,切换到自己的本地仓库;
2、输入 touch .gitignore,则会在项目中生成一个.gitignore文件。
3、编辑生成的.gitignore ,可以用vim编辑,也可以文本方式打开该文件编辑。

这里写图片描述

.gitignore忽略规则

语法:
以”#”号开头表示注释;
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
语法示例:
1、规则file/
说明:忽略目录file下的全部内容;不管是根目录下的/file/目录,还是某个子目录/child/file/目录,都会被忽略。
2、规则/file/
说明:忽略根目录下的/fd1/目录的全部内容;
3、规则
/*
!.gitignore
说明:忽略所有文件,但不忽略.gitignore文件。

项目实战

项目目录:
这里写图片描述
假如我只想管理源文件和忽略文件,也就是SKFileDataBase目录中内容。
第一次修改 忽略文件如下:

/*
!/SKFileDataBase/
!.gitignore

将以上文件保存到.gitignore。执行git add . git commit -m “加入版本管理”;
通过git ls-files查看当前版本管理文件如下:
这里写图片描述
通过git ls-flies可以查看加入版本管理的为.gitignore文件和SKFileDataBase目录中的所有文件。
我们原来意愿是只管理源文件和忽略文件,但是我们发现在SKFileDataBase目录包含的子文件夹Debug目录中全部为编译生成的文件,我们想把它从版本管理中去除。
修改.gitginore如下并保存

/*
!/SKFileDataBase/
/SKFileDataBase/Debug/
!.gitignore

执行git 命令:
git rm -r –cached. 说明:将版本管理追踪,清空,从新追踪。
git add . 说明:重新提交到暂存区
git commit -m “提交版本管理” 说明:提交到本地仓库,将按照新的.gitignore文件管理追踪管理项目
git ls-files
这里写图片描述

补充:
不同开发项目.gitignore自动生成介绍,以及忽略不生效问题

希望对您有所帮助!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐