一般に、 Git で管理する必要のないファイルが常に存在するため、それらのファイルが追跡されていないファイルのリストに常に表示されることは望ましくありません。
これらは通常、ログ ファイルやコンパイル中に作成される一時ファイルなど、自動的に生成されるファイルです。この場合、 .gitignore
無視するファイルのパターンをリストした という名前のファイルを作成できます。
.gitignore ファイルの役割の概要
.gitignore
このファイルは、指定されたファイルまたはフォルダーの変更を無視するために使用されます。ファイルに記録されたファイルまたはフォルダーは.gitignore
git で追跡できません。つまり、無視されたファイルはリモート ウェアハウスに置かれません。ファイルがリモート ウェアハウスにすでに存在する場合、.gitignore
そのファイルは無視できません。
.gitignore ファイルの作成
.gitignore
ファイルはgit リポジトリのルート ディレクトリに保存されます。
Linux/Mac のコマンドラインでファイルを作成/削除する コマンドは.gitignore
次のとおりです。
touch .gitignore # 新建
rm -f .gitignore # 删除
.
Windows システムの win10 より前のバージョンでは、表示メニューを直接使用して記号で始まるファイルを作成/削除できない場合があり 、コマンド ラインで操作する必要があります。
:: 创建
TYPE NUL>.gitignore
:: 删除
DEL /F .gitignore
.gitignore ファイルの形式仕様 (構文)
- すべての空白行または
#
. で始まる行は Git によって無視されます。 - 標準の グロブ パターンマッチングを使用でき、ワークスペース全体に再帰的に適用されます。
- 再帰を防ぐために、一致パターンを (
/
) で始めることができます。 - 一致するパターンは
/
ディレクトリを指定するために ( ) で終わることができます。 - 感嘆符を使用して、
!
一致するファイルまたはディレクトリを無視 (追跡) しないことを示します。
グロブ パターンは、シェルで使用される正規表現の簡略化されたバージョンです。
- アスタリスク (
*
) は、0 個以上の任意の文字と一致します。 - 疑問符 (
?
) は任意の 1 文字のみに一致します。 [ ]
角かっこ内の単一文字の一致を示します。
(1)[abc]
a と一致、b と一致、または c と一致します(2 ) 、などの連続する文字を表すために
使用できます。これは、0 から 0 までの 1 文字と一致することを意味します。 9文字。(3) 0 ~ 9 以外の単一文字を示すなど、例外を示すために使用できます。-
0-9
a-z
A-Z
[0-9]
^
[^0-9]
- 2 つのアスタリスク (
**
) を使用して、中間ディレクトリと一致させます。たとえば 、 、 または などとa/**/z
一致させることができます。a/z
a/b/z
a/b/c/z
.gitignore ファイルの例
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹,等价于 build/*.*
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
.gitignore ファイル使用時の注意事項
- 公式データを初めて提出する前に、
.gitignore
ローカル ライブラリへの提出ファイルを作成します (その後、それをリモート ライブラリにプッシュします)。
注: git の以前のバージョンでは、.gitignore
ファイルをローカル ライブラリに送信した後でのみ、送信された正式なデータにフィルタリング ルールを適用できます (上記のバージョンでは、 ファイルが存在する限り、最初に ファイルgit2.+
を送信する必要はありません)。存在し、 に.gitignore
正式なデータが初めて追加/送信される前に.gitignore
.gitignore
- 追加
.gitignore
前にローカル ライブラリに送信された (またはリモート ライブラリにプッシュされた) データは、フィルタリング ルールの影響を受けません。
したがって、最初に送信してプッシュする必要があります.gitignore
。 - を送信してプッシュした
.gitignore
後、そのフィルタリング ルールを更新する必要があります。不必要なデータの送信を防ぐために、正式なデータを送信する前に、まずリモート ライブラリに変更/送信/プッシュする必要があります。