web-dev-qa-db-ja.com

複数の.gitignoreファイルを使用するためのベストプラクティス

https://github.com/github/gitignore には、有用な.gitignoreファイルのコレクションがあります。そこにあるすべての無視ファイルには、拡張子.gitignoreがあります。 Java.gitignore、vim.gitignore。これらのファイルを直接workdirに入れると、機能しません。

単一のファイル.gitignoreを作成し、構成ファイルをそのファイルにマージする必要がありますか?

したがって、--global.gitignoreファイルを使用すると、構成が単一のファイルを指しているように見えます。たとえば、Global /ディレクトリにあるすべての.gitignoreファイルを適用したい場合、それらを手動で1つのファイルにマージする必要がありますか?その場合、このマージされたファイルを「公式」コレクションで最新の状態に保つのは余分な作業です。

繰り返しになりますが、私は異なるディレクトリで異なる.gitignoreファイルを使用できることを認めますが、それは私が望むものではありません。 1つのディレクトリに複数の.gitignoreファイルを適用したい。

38
victorwoo

明確にするために:プロジェクトのgitignoreファイルは.gitignoreと呼ばれます


バックグラウンド:

.gitignoreは、それが入っているディレクトリを指します。これは、.gitリポジトリを持つディレクトリ、つまり「.git /」ディレクトリの最上位または子孫のいずれかです。

任意のサブディレクトリに複数の.gitignoreファイルが存在する可能性がありますが、ベストプラクティスは、特定のプロジェクトルートにone.gitignoreを設定し、そのファイル参照サブディレクトリを設定することです必要に応じて、例えばimages/yearly/recentさもなければ、無視されているものを見つけるために「どの」.gitignoreファイルを調べるべきかを知るのは難しいです。ファイル名としてパターンを使用できることを考えると、かなり扱いにくいかもしれません!

また、あなたのマシン上のallプロジェクトに適用されるグローバル.gitignoreファイルの使用を回避することをお勧めします。新しいプロジェクトで使用します。ここでの主な考慮事項は、.gitignoreが他の開発者(存在することも存在しないこともある)とは異なるため、結果は不確定であることです。これに対する例外の1つの例は、グローバルな.gitignoreファイルをIDEファイルに使用することです。自分のマシンで開いているプロジェクトでは必要ないため、グローバルな.gitigoreを使用して、 .idea /ファイル(rubyMine)。


リストされているテンプレートの目的は、通常、特定の言語で与えられたファイルのコードを記述していることです。このため、多くの場合、その言語に基づくテンプレートで十分です。

コードベースに複数の言語がある場合は、これらの言語の複数の.gitignoreを組み合わせる必要があります。これは、次のようなさまざまな方法で実行できます。

cat .gitignore1 .gitignore2 > .gitignore # if .gitignore doesn't exist yet
cat .gitignore1 >> .gitignore # Add to it if it already exists
paste .gitignore1 .gitignore # Add to it if it already exists

プレスを離れたホット(イッシュ)(2014年夏):

Gitignorerは、.gitignoreファイルの作成を支援するシンプルなユーティリティです。除外する一般的なファイルを含む特定の(指定された).gitignoreテンプレートをgithub.com/github/gitignoreからプルし、それらをマッシュアップして、現在のディレクトリの.gitignoreに保存します。

使用例:

gitignorer create c Java python

Gitignorerは現在、AURの https://aur.archlinux.org/packages/gitignorer/ およびGitHub https:// githubから入手できます。 com/zachlatta/gitignorer


37
Michael Durrant