1. .gitignore 簡介
.gitignore 文件的作用就是告訴 git 哪些文件不需要添加到版本管理中(定義忽略提交的文件)
.gitignore 文件用來忽略被指定的文件或文件夾的改動,被記錄在.gitignore文件里的文件或文件夾,是無法被 git 跟蹤到的,換句話說,被忽略的文件是不會被放入到遠程倉庫里的。
也就是說,如果文件已經(jīng)存在于遠程倉庫中,是無法通過 .gitignore 文件來忽略的
2. .gitignore 注釋
所有空行或者以注釋符號 # 開頭的行都會被 git 忽略
以井號(#)開頭的行是注釋,將被忽略,空行可用于提高文件的可讀性并對相關的模式行進行分組
# 忽略編輯器配置目錄
/.idea
/.vscode
3. / 開頭或結(jié)尾的忽略
之前在某篇文章中看到這句話: 以斜杠 /
開頭表示忽略的是目錄
后來發(fā)現(xiàn)并不是這樣的,它真正的作用是只忽略同級的內(nèi)容,而不忽略下級目錄中的內(nèi)容
結(jié)論: / 位于頭部的作用是只忽略當前目錄下的內(nèi)容;放在尾部的作用是只忽略目錄,而不忽略文件
頭尾都沒有 /
# 忽略當前目錄及下級目錄中所有的 runtime
# runtime 文件或目錄都會被忽略
runtime
前面有 /
# 只忽略當前目錄中的 runtime 文件或目錄
# 不忽略下級目錄中的 runtime 文件或目錄
/runtime
后面有 /
# 只忽略當前目錄和下級目錄中的 runtime 目錄
# 不忽略當前目錄和下級目錄中的 runtime 文件
runtime/
頭尾都有 /
# 只忽略當前目錄中的 runtime 目錄
/runtime/
4. glob 模式匹配忽略
在 .gitignore 文件中可以使用標準的 glob 模式匹配
以星號 *
通配多個字符
# 忽略 vendor 目錄下的所有文件
/vendor/*
# 忽略所有后綴名為 txt 的文件
*.txt
以問號 ?
通配單個字符
# 忽略文件名稱為一個字符, 后綴名為 php 的文件
?.php
以方括號 []
包含單個字符的匹配列表
# 忽略 125.php、135.php文件
1[23]5.php
以嘆號 !
表示不忽略(跟蹤)匹配到的文件或目錄
【注意項】注意寫法 要忽略的文件夾一定要結(jié)尾 /*
,否則不忽略規(guī)則將無法生效
# 忽略vendor目錄下的所有文件
/vendor/*
# 不忽略vendor目錄下的 1.php
# 在已忽略的文件夾中不忽略指定文件
!/vendor/1.php
# 不忽略vendor目錄下 dev目錄
# 在已忽略的文件夾中不忽略指定文件夾
!/vendor/dev
5. .gitignore 全局忽略
git 允許創(chuàng)建全局 .gitignore 文件,所有本地 git 倉庫都將遵守全局的忽略規(guī)則。
該文件的名稱和位置沒有要求,只要在 git 配置文件中路徑指定正確即可。
例如,將 ~/.gitignore_global
設置為全局 git 忽略文件,可以執(zhí)行以下操作:
# 創(chuàng)建文件
touch ~/.gitignore_global
# 將文件添加到 git 配置
git config --global core.excludesfile ~/.gitignore_global
mac 中會產(chǎn)生很多 【.DS_Store】 文件,這個文件是沒有必要被 git 管理的,可以將它添加到全局忽略中
echo .DS_Store >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
6. 忽略已提交到遠程庫的內(nèi)容
刪除暫存區(qū)中的文件或目錄
git rm --cached <file>
git rm -r --cached <folder>
在 .gitignore 中添加忽略配置
<file>
/<folder>
推送到遠程倉庫
git add .gitignore
git commit -m '忽略文件'
git push origin master
7. 常用的忽略規(guī)則使用示例
# 忽略編輯器配置目錄
.idea
.vscode
.hbuilderx
# uniapp
/unpackage
# ThinkPHP5.0
/runtime
/vendor
/thinkphp
# mac
.DS_Store
# 忽略配置公眾號網(wǎng)頁授權域名時的校驗文件
MP_verify_*.txt
# 忽略 Let's Encrypt SSL 證書目錄
.well-known
# 前臺靜態(tài)資源(如:uniapp打包后的文件部署到/h5目錄下)
/public/h5/*
!/public/h5/.gitkeep