gitignore 規則

gitignore 規則

gitignore 規則

一種被 Git 忽略跟蹤文件(或目錄)的規則,這種規則對於已被跟蹤的文件是無效的。
當然它也提供配置自動加入跟蹤的文件(或目錄)的規則,但這種用法比較少。

規則

基本規則

  1. 空行或者以 # 開頭的行都會被 Git 忽略。一般空行用於可讀性的分隔, # 一般作註釋用
  2. 以斜槓 / 結尾表示忽略目錄
  3. / 開頭表示根目錄下的文件或目錄
  4. 以歎號 ! 表示不忽略(跟蹤)匹配到的文件或目錄

示例如下:

# 本行爲註釋
.idea/          # 忽略倉庫中所有.idea 目錄
/.idea/         # 忽略倉庫中根目錄下的.idea 目錄
/.settings      # 忽略倉庫中根目錄下的 .settings 文件或目錄
~'$'*.docx      # office 打開時生成的臨時文件

!etc/eclipse/.checkstyle    # 不忽略 .checkstyle 文件或目錄

glob 模式規則

指 shell 使用的簡化版正則表達式規則,其如下:

  1. 以星號 * 通配任意個字符(0-n)
  2. 以問號 ? 通配單個字符(1)
  3. 以方括號 [] 包含單個字符的匹配列表

示例如下:

debug?.logt         # 忽略 debug?.log 文件或目錄,其中 ? 爲任意一個字符

debug[0-9].log      # 忽略 debug0.log、debug2.log 等,但不忽略 debuga.log 文件
debug[01].log       # 僅忽略 debug0.log、debug1.log
debug[!01].log      # 不忽略 debug0.log、debug1.log

doc/*.txt           # 忽略 doc 目錄下一級的所有以 .txt 結尾的文件或目錄
doc/**/*.pdf        # 忽略 doc 目錄下所有的 .pdf 文件或目錄

注意

  1. 以上規則僅適用於未被緩存或加入版本控制的文件
  2. gitignore 支持 glob 模式
  3. gitignore 是從上到下一行一行匹配,後面的會覆蓋前面的

用法

git 中提供 ignore 支持的方式據我瞭解共有三種,按照效果來分可分爲 全局忽略_、_倉庫忽略(遠程共用) 及 _倉庫忽略(本地使用)_。

全局忽略

本地所有倉庫中共同使用的忽略規則。

可以通過命令行或直接修改文件的方式進行修改:

  • 命令行:直接修改 core.excludesFile 值即可
  • 修改配置文件:修改 ~/.gitconfig 文件,在 [core] 區域添加 excludesfile 屬性,如下:

    [core]
    excludesFile = ~/.gitignore

注:

  • core.excludesFile 的默認值爲 ~/.config/git/ignore

倉庫忽略-遠程

當前倉庫使用,在當前倉庫任意目錄下創建 .gitignore 文件即可,Git 會通過它提供的規則忽略文件。

注:

  • 遠程共用的效果需要將 .gitignore 文件加入 Git 的版本管理
  • .gitignore 文件規則存在衝突時,當前目錄中的優先於父級目錄中的

倉庫忽略-本地

當前倉庫使用。

修改 $GIT_DIR/info/exclude 文件,該文件規則和 .gitignore 文件一致。

注:

  • $GIT_DIR 爲當前倉庫中的 .git/ 目錄

命令行式忽略

通過命令行提供忽略規則,根據參數不同,可達到 遠程/本地 的效果。

各位如果觀察過 $GIT_DIR/info/exclude 文件,可以發現該文件第一行有這麼一個命令

git ls-files --others --exclude-from=.git/info/exclude

實際上通過此命令也可以設置忽略規則文件。

總結

以下爲個人對各種忽略規則的一般準則吧,各位可以參考參看:

  1. 命令行形式的,通常不使用,畢竟有以下更簡單方便的方式實現。
  2. .gitignore: 當前存儲庫中有開發人員都要忽略的跟蹤文件
  3. $GIT_DIR/info/exclude:單個存儲庫個人忽略的配置文件,如個人爲了更好 debug,開啓日誌配置等
  4. ~/.gitconfigcore.excludesFile 指定的文件:任意情況下用戶希望忽略的文件,如IDE配置文件目錄(當然
    項目中也一般會添加此忽略規則)。

插件

因爲個人多數使用 Intellij IDEA,所以只瞭解 IDEA 下的插件,個人推薦使用 .ignore

因爲該插件不僅支持 gitignore ,還支持其他類型的 ignore 忽略規則語法高亮,如圖

.ignore插件

參考地址:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章