kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

gitignoreファイルのフォーマットと書き方

  gitignoreファイルのフォーマットと書き方です。


  gitignoreファイルのフォーマット

    「gitignore」ファイルはテキストファイルです。
    テキストエディターで編集します。

  空の行

    空の行は読み飛ばされます。

  コメント行

    「#」で始まる行は、コメント行です。
    コメント行も読み飛ばされるため、説明などを記述することができます。

スペースの削除とスペースの保持

  条件の後ろにあるスペースの扱いについてです。


  後ろのスペースは削除される

    各行に記述した条件は、ファイルの読み込み時に後ろのスペースが削除されて読み込まれます。

    例えばファイルに「readme.txt 」記述すると、「readme.txt」ファイルが「Git」の操作対象外になります。
    この時、「readme.txt 」ファイルは操作対象外になりません。

  後ろのスペースを保持する

    デフォルトでは後ろのスペースが削除されますが、スペースを「\」(バックスラッシュ)で引用すると、後ろのスペースを削除せず保持できます。


    例えばファイルに「readme.txt\ 」記述すると、「readme.txt 」ファイルが「Git」の操作対象外になります。
    この時、「readme.txt」ファイルは操作対象外になりません。

    複数のスペースを記述する場合は、1スペースずつ「\」(バックスラッシュ)で引用します。
    例えば「readme.txt\ \ 」のように記述します。

ファイルとフォルダーの区別

  ファイルとフォルダーの区別についてです。
  デフォルトでは、記述した条件はファイルとフォルダーの区別なく、条件が適用されます。


  条件にフォルダーを明示する

    記述した条件をフォルダーにのみ適用したい時は、フォルダー名の後ろに「/」を記述します。

    例えば、「temp/」と記述すると、「temp」フォルダーが「Git」の操作対象外になります。
    「temp」ファイルは、操作対象外になりません。

特定のフォルダーやファイルを指定する

  特定のフォルダーやファイルを指定する方法です。


  特定のフォルダーやファイルを指定する

    パスの記述を行うことで、特定のフォルダーや特定のファイルを、「Git」の操作対象外にすることができます。

    パスは自分のフォルダーからの相対パスで記述します。
    また、条件の記述は「/」から記述します。

    例えば「/readme.txt」と記述すると、自分のフォルダーにある「readme.txt」ファイルが「Git」の操作対象外になります。
    この時、下位フォルダー内にある「readme.txt」ファイルは操作対象外になりません。

    また、「/subfolder/readme.txt」のように、下位フォルダー内のファイルやフォルダーを条件に記述することもできます。

    パスを指定した条件は、下位フォルダー以下に引き継がれません。

  ワーキングディレクトリー外のgitignoreファイルについて

    「ワーキングディレクトリー」外に配置する「gitignore」ファイルにパスの記述を行った場合、パスのルートはワーキングツリーのルートになります。


    例えば、「~/.config/git/ignore」ファイルに「/readme.txt」を記述した場合、「ワーキングツリー」のルートにある「readme.txt」ファイルが「Git」の操作対象外になります。
    下位フォルダー内にある「readme.txt」ファイルは操作対象外になりません。

    「ワーキングツリー」のルートに配置した「.gitignore」ファイルと同じパス基準になります。

  パスの中間をまとめて条件に指定するには

    パスの中間をまとめて条件にしてすることもできます。
    パスの中間は、「**」で記述します。


    例えば「subfolder/**/temp/」と記述すると、以下のいずれのフォルダーも「Git」の操作対象外になります。

  • subfolder/temp
  • subfolder/subfolder/temp
  • subfolder/subfolder/subfolder/temp

    この条件は、下位フォルダー以下に引き継がれます。

  フォルダー内のすべてのファイルやフォルダーを指定するには

    フォルダー内のすべてのファイルやフォルダーを指定することもできます。


    例えば「/subfolder/**」と記述すると、自分のフォルダー内にある「subfolder」サブフォルダーが「Git」の操作対象外になります。

    この条件は、下位フォルダー以下に引き継がれません。

  下位フォルダー以下に引き継がない条件を下位フォルダー以下に引き継ぐには

    下位フォルダー以下に引き継がない条件を、下位フォルダー以下に引き継ぐこともできます。
    下位フォルダー以下に引き継ぐには、条件の頭に「**」を記述します。


    例えば「**/subfolder/」と記述すると、各フォルダー内にある「subfolder」サブフォルダーが「Git」の操作対象外になります。

例外の記述

  例外は、「Git」の操作対象外の条件に合うファイルやフォルダーを、操作対象外の条件から外す記述のことです。


  例外を指定する

    例外を指定するには、条件の頭に「!」を記述します。

    例えば、以下の記述があるとします。

*.txt
!readme.txt

    この条件では、1行目で拡張子「txt」を持つファイルがすべて「Git」の操作対象外になります。
    しかし2行目の例外で「readme.txt」を指定しているので、「readme.txt」ファイルは「Git」の操作対象になります。

ファイルやフォルダーをまとめて指定する

  ワイルドカードを利用して条件を記述すれば、複数のファイルやフォルダーをまとめて指定することができます。


  ワイルドカードは、globを利用します。
  各ワイルドカードは、組み合わせて利用できます。
  また、1つの条件で複数のワイルドカードを利用できます。

  *ワイルドカード

    どの文字列にも対応するワイルドカードです。
    文字数は何文字でも良いです。
    0文字でも良いです。

    記述例

      「*.txt」と記述すれば、拡張子が「txt」のファイルを対象にできます。

  ?ワイルドカード

    どの文字列にも対応するワイルドカードです。
    ただし「*」ワイルドカードと異なり、文字数は1文字です。

    記述例

      「?-doc.txt」と記述すれば、ファイル名の1文字目に任意の1文字を持つ「-doc.txt」のファイルを対象にできます。

  []ワイルドカード

    []内に記述された文字に対応するワイルドカードです。
    ただし「*」ワイルドカードと異なり、文字数は1文字です。

    「?」ワイルドカードの条件を細かく指定するワイルドカードです。

    記述例1

      「[abc].txt」と記述すれば、以下のいずれかのファイルを対象にできます。

  • a.txt
  • b.txt
  • c.txt

    記述例2

      「-」で文字の範囲を指定できます。
      「[a-c].txt」と記述すれば、以下のいずれかのファイルを対象にできます。

  • a.txt
  • b.txt
  • c.txt

  [!]ワイルドカード

    []内に記述された文字に該当しない文字に対応するワイルドカードです。
    []の意味を反転させたものです。
    「*」ワイルドカードと異なり、文字数は1文字です。

    「?」ワイルドカードの条件を細かく指定するワイルドカードです。

    記述例

      「[!r]*.txt」と記述すれば、ファイル名の1文字目が「r」以外かつ拡張子が「txt」のファイルを対象にできます。


関連コンテンツ
同一カテゴリーの記事
コメント
オプション