Lnton羚通关于如何管理GIT代码之 gitignore

【问题】

Git是应用极其广泛的代码版本管理工具。在编写代码的过程中会遇到很多问题,之前遇到过团队成员在提交代码仓库时,提交了大量的图片和视频文件以及一些编译的临时文件,导致代码仓库非常大,每次其他成员拉取的时候都要拉取一堆垃圾信息。那么如何避免该问题呢?

【解决办法】

在新建仓库的时候,建立一个 .gitignore 文件,该文件可以忽略掉那些临时文件,或者不需要跟踪的文件,也可以忽略掉一些文件夹。那么 .gitignore 的规则如何呢?

.gitignore 文件的存放

该文件可以存放在仓库的根目录下,它递归应用于整个仓库中。也可以放在子目录中,子目录中的 .gitignore 作用域在其目录。

.gitignore 格式规范

所有空行或者以 # 开头的行都会被 Git 忽略;

可以使用标准的 glob 模式匹配,它会递归应用到整个工作区;

匹配模式可以以 / 开头防止递归;

匹配模式可以以 / 结尾指定目录;

要忽略那些指定格式的文件或目录,可以在模式前加上 ! 取反,即该类文件或目录继续进行跟踪。

glob 模式是指 shell 简化了正则表达式。* 匹配0个或多个任意字符,[abc] 匹配任意一个列在方括号中的字符(要么匹配 a, 要么匹配 b, 要么匹配 c )。? 只匹配一个任意字符。如果方括号中使用了短划线分割两个字符,如 [0-9] 会匹配 0~9 之间的数字;使用 ** 表示匹配任意中间目录,如 a/**/z 表示匹配 a/z, a/b/z, a/b/c/d/e/z;

# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

要养成一个好的习惯
每次建立新仓库的时候,应及时建立 .gitignore 文件,以免将来提交无用的文件。
Git 除了利用 .gitignore 方式忽略不需要跟踪的文件外。还提供了另外一种方式 exclude, exclude 存放在 .git/info/exclude , 它与 .gitignore 不同的是, exclude 是本地需要排除的文件,不会提交到仓库中应用在别人机器上,而 .gitignore 本身可以提交到仓库中,适用于使用仓库的所有人。

.gitignore 文件可以作为占位文件,例如有些文件夹需要同步到仓库中,可以在文件夹中新建一个 .gitignore 文件,下次拉取的时候可以同步拉取了这个空目录。

Lnton羚通专注于音视频算法、算力、云平台的高科技人工智能企业。 公司基于视频分析技术、视频智能传输技术、远程监测技术以及智能语音融合技术等, 拥有多款可支持ONVIF、RTSP、GB/T28181等多协议、多路数的音视频智能分析服务器/云平台。

 

你可能感兴趣的:(算法,git)