.gitignore 文件

文章目录

    • [官网不同语言的 `.ignore` :](#官网不同语言的 .ignore :)
    • 规则
      • 基本规则
      • 忽略文件和目录
      • [仅忽略 folderName 文件,不忽略 folderName 目录 (!)](#仅忽略 folderName 文件,不忽略 folderName 目录 (!))
      • [只忽略目录 /](#只忽略目录 /)
      • [使用通配符 * ? \[\]](#使用通配符 * ? [])
      • [多级目录 **](#多级目录 **)

官网不同语言的 .ignore :

https://github.com/github/gitignore/tree/main


规则

基本规则

  • 使用 # 作为注释
  • 在 .gitignore 文件中,每行表示一种模式;
  • 空行不匹配任何文件;
  • git 跟踪文件,而不是目录;
  • 如果本地仓库文件已被跟踪,那么即使在 .gitignore 中设置了忽略,也不起作用。
  • .gitignore 文件也会被上传的到远程仓库,所以,同一个仓库的人可以使用同一个.gitignore 文件。

忽略文件和目录

复制代码
folderName
  • 表示忽略 folderName 文件和 folderName 目录,src/folder 文件、src/utils/folder 文件都会被忽略,即:不会被提交到远程仓库中。
  • 会自动搜索多级目录,比如:*/*/folderName。

仅忽略 folderName 文件,不忽略 folderName 目录 (!)

模式如下所示:

复制代码
folderName
!folderName/
  • 反向操作 ! : 表示之前忽略的匹配模式再次包含在跟踪内容里。
  • src/folderName 文件、src/utils/folderName 文件会被忽略,而同名的 folderName 目录不会被忽略。

只忽略目录 /

复制代码
folderName/

忽略 folderName 目录,包括:

  • 当前目录下的foldernName,例如:folderName/;
  • 多级目录下的 folderName,例如:*/*/folderName/;
  • 同名的 src/folder 文件和 src/utils/folder 文件不会被忽略。

使用通配符 * ? \[\]

常用的通配符有:

  • 星号 * :匹配多个字符;

  • 问号?:匹配除 / 外的任意一个字符;

  • 方括号 [xxxx]:匹配多个列表中的字符;

    $ tree
    .
    ├── src
    │ ├── add.c
    │ ├── add.i
    │ └── add.o
    ├── test.c
    ├── test.i
    └── test.o

    1 directory, 6 files


其中,.gitignore 文件内容如下所示:

复制代码
*.[io] 
  • 故在本地仓库中,test.i 文件、test.o 文件、src/add.o文件、src/add.i 文件会被忽略
  • 而 test.c 文件和 add.c 文件不会被忽略。
  • 这里忽略的匹配模式是多级目录的。

多级目录 **

斜杠后紧跟两个连续的星号 **,表示多级目录。

shell 复制代码
src/**/file 

可以表示忽略 src/folder1/file 、src/folder1/folder2/***/foldern/file 等。


2023-07-29(六)

相关推荐
程序员差不多先生13 小时前
Anthropic 用 5 个月重写了 Git:当 AI Agent 把版本控制系统逼到墙角
人工智能·git·elasticsearch·deepseek v4 pro·kimi k3·glm 5.3·qwen3.7 max
leo_厉锵14 小时前
GIT习题
git
catoop1 天前
用 Shell 包装函数,让单个命令拥有专属配置
git
Zguigo1 天前
学会更高效的理解AI的输出?
人工智能·git·ai
鬼手点金1 天前
上下文:Agent 的眼睛
java·前端·人工智能·git·深度学习
guohuang2 天前
让机器人安全失败:点云中断、TF 超时和控制器崩溃怎么测
git·安全·机器人
小道士写程序2 天前
Git 大文件问题解决办法
git
黑泽明Coding2 天前
如何重置git分支,清空分支所有提交历史
git
小堃学编程2 天前
Git远程开发操作指南
git
于眠牧北2 天前
雷电模拟器9/14搭配charles抓取自带浏览器接口9/14
经验分享·笔记·git