.gitignore文件作用
·
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。
通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。
.gitignore文件的作用总结
.gitignore文件用来忽略被指定的文件或文件夹的改动,被记录在.gitignore文件里的文件或文件夹,是无法被git跟踪到的,即被忽略的文件是不会被放入到远程仓库里的。如果文件已经存在于远程仓库中,是无法通过.gitignore文件来忽略的。
.gitignore文件的创建
.gitignore 文件存放于git仓库的根目录下。
linux / mac 下在命令行创建/删除 .gitignore 文件命令如下:
touch .gitignore # 新建
rm -f .gitignore # 删除
windows 系统 win10 以前的版本可能无法直接用视图菜单创建/删除以 . 号开头的文件,需要在命令行操作:
:: 创建
TYPE NUL>.gitignore
:: 删除
DEL /F .gitignore
.gitignore 文件的格式规范(语法)
- 所有空行或者以
#开头的行都会被 Git 忽略。 - 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
- 匹配模式可以以(
/)开头防止递归。 - 匹配模式可以以(
/)结尾指定目录。 - 以叹号
!表示不忽略(跟踪)匹配到的文件或目录。
glob 模式是指 shell 所使用的简化了的正则表达式。
- 星号(
*)匹配零个或多个任意字符; - 问号(
?)只匹配一个任意字符; [ ]表示匹配中括号内的单个字符:
(1)[abc]要么匹配一个 a,要么匹配一个 b,要么匹配一个 c
(2) 可以使用-来表示连贯的字符,比如0-9,a-z,A-Z等,[0-9]表示匹配从0到9的单个字符。
(3) 可以使用^来表示除外,比如[^0-9]表示除0到9之外的单个字符。- 使用两个星号(
**)表示匹配任意中间目录,比如a/**/z可以匹配a/z、a/b/z或a/b/c/z等。
.gitignore 文件示例
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹,等价于 build/*.*
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
.gitignore文件使用的注意事项
- 在首次提交正式数据前,先创建提交
.gitignore文件到本地库(再推送到远程库)。
注意: 在git早期版本中,只有先提交.gitignore文件到本地库后,才能对提交的正式数据采用过滤规则(在git2.+以上版本中无需先提交.gitignore文件,只要保证在首次添加/提交正式数据前.gitignore文件已存在且设置好过滤规则,但为了标准化 git 的操作,建议先提交推送.gitignore到远程库)。 - 对在添加
.gitignore之前,已提交到本地库(或推送到远程库的数据),不会受到过滤规则的影响。
因而必须先提交、推送.gitignore。 - 在提交、推送
.gitignore之后,需要更新它的过滤规则,必须先修改/提交/推送到远程库后,再提交正式数据,防止不必要的数据的提交。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)