gitignore 規則

gitignore 規則

gitignore 規則

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

規則

基本規則

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

示例以下:github

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

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

glob 模式規則

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

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

示例以下:shell

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 支持的方式據我瞭解共有三種,按照效果來分可分爲 全局忽略_、_倉庫忽略(遠程共用) 及 _倉庫忽略(本地使用)_。緩存

全局忽略

本地全部倉庫中共同使用的忽略規則。bash

能夠經過命令行或直接修改文件的方式進行修改:eclipse

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

    [core]
    excludesFile = ~/.gitignore

注:idea

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

倉庫忽略-遠程

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

注:

  • 遠程共用的效果須要將 .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插件

參考地址:

相關文章
相關標籤/搜索