.gitignore 忽略文件和目錄

作者:辰風沐陽 閱讀:2830 發(fā)布時間:2021-05-09 上次更新:2023-12-26

1. .gitignore 簡介


.gitignore 文件的作用就是告訴 git 哪些文件不需要添加到版本管理中(定義忽略提交的文件)

.gitignore 文件用來忽略被指定的文件或文件夾的改動,被記錄在.gitignore文件里的文件或文件夾,是無法被 git 跟蹤到的,換句話說,被忽略的文件是不會被放入到遠程倉庫里的。

也就是說,如果文件已經(jīng)存在于遠程倉庫中,是無法通過 .gitignore 文件來忽略的

2. .gitignore 注釋


所有空行或者以注釋符號 # 開頭的行都會被 git 忽略

以井號(#)開頭的行是注釋,將被忽略,空行可用于提高文件的可讀性并對相關的模式行進行分組

  1. # 忽略編輯器配置目錄
  2. /.idea
  3. /.vscode

3. / 開頭或結(jié)尾的忽略


之前在某篇文章中看到這句話: 以斜杠 / 開頭表示忽略的是目錄

后來發(fā)現(xiàn)并不是這樣的,它真正的作用是只忽略同級的內(nèi)容,而不忽略下級目錄中的內(nèi)容

結(jié)論: / 位于頭部的作用是只忽略當前目錄下的內(nèi)容;放在尾部的作用是只忽略目錄,而不忽略文件

頭尾都沒有 /

  1. # 忽略當前目錄及下級目錄中所有的 runtime
  2. # runtime 文件或目錄都會被忽略
  3. runtime

前面有 /

  1. # 只忽略當前目錄中的 runtime 文件或目錄
  2. # 不忽略下級目錄中的 runtime 文件或目錄
  3. /runtime

后面有 /

  1. # 只忽略當前目錄和下級目錄中的 runtime 目錄
  2. # 不忽略當前目錄和下級目錄中的 runtime 文件
  3. runtime/

頭尾都有 /

  1. # 只忽略當前目錄中的 runtime 目錄
  2. /runtime/

4. glob 模式匹配忽略


在 .gitignore 文件中可以使用標準的 glob 模式匹配

以星號 * 通配多個字符

  1. # 忽略 vendor 目錄下的所有文件
  2. /vendor/*
  3. # 忽略所有后綴名為 txt 的文件
  4. *.txt

以問號 ? 通配單個字符

  1. # 忽略文件名稱為一個字符, 后綴名為 php 的文件
  2. ?.php

以方括號 [] 包含單個字符的匹配列表

  1. # 忽略 125.php、135.php文件
  2. 1[23]5.php

以嘆號 ! 表示不忽略(跟蹤)匹配到的文件或目錄

【注意項】注意寫法 要忽略的文件夾一定要結(jié)尾 /* ,否則不忽略規(guī)則將無法生效

  1. # 忽略vendor目錄下的所有文件
  2. /vendor/*
  3. # 不忽略vendor目錄下的 1.php
  4. # 在已忽略的文件夾中不忽略指定文件
  5. !/vendor/1.php
  6. # 不忽略vendor目錄下 dev目錄
  7. # 在已忽略的文件夾中不忽略指定文件夾
  8. !/vendor/dev

5. .gitignore 全局忽略


git 允許創(chuàng)建全局 .gitignore 文件,所有本地 git 倉庫都將遵守全局的忽略規(guī)則。

該文件的名稱和位置沒有要求,只要在 git 配置文件中路徑指定正確即可。

例如,將 ~/.gitignore_global 設置為全局 git 忽略文件,可以執(zhí)行以下操作:

  1. # 創(chuàng)建文件
  2. touch ~/.gitignore_global
  3. # 將文件添加到 git 配置
  4. git config --global core.excludesfile ~/.gitignore_global

mac 中會產(chǎn)生很多 【.DS_Store】 文件,這個文件是沒有必要被 git 管理的,可以將它添加到全局忽略中

  1. echo .DS_Store >> ~/.gitignore_global
  2. git config --global core.excludesfile ~/.gitignore_global

6. 忽略已提交到遠程庫的內(nèi)容


刪除暫存區(qū)中的文件或目錄

  1. git rm --cached <file>
  2. git rm -r --cached <folder>

在 .gitignore 中添加忽略配置

  1. <file>
  2. /<folder>

推送到遠程倉庫

  1. git add .gitignore
  2. git commit -m '忽略文件'
  3. git push origin master

7. 常用的忽略規(guī)則使用示例


  1. # 忽略編輯器配置目錄
  2. .idea
  3. .vscode
  4. .hbuilderx
  5. # uniapp
  6. /unpackage
  7. # ThinkPHP5.0
  8. /runtime
  9. /vendor
  10. /thinkphp
  11. # mac
  12. .DS_Store
  13. # 忽略配置公眾號網(wǎng)頁授權域名時的校驗文件
  14. MP_verify_*.txt
  15. # 忽略 Let's Encrypt SSL 證書目錄
  16. .well-known
  17. # 前臺靜態(tài)資源(如:uniapp打包后的文件部署到/h5目錄下)
  18. /public/h5/*
  19. !/public/h5/.gitkeep

標簽: git