gitリポジトリで再帰的にすべての隠しディレクトリ/ファイルを無視するにはどうすればよいですか?


128

すべての隠しファイルとディレクトリをGitに無視させたいのですが。すなわち

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

特に各エントリを追加せずにこれをカバーする簡単なルールはありますか?

回答:


165

にパターンを追加するだけです .gitignore

.*
!/.gitignore

編集:.gitignoreファイル自体を追加しました(まだコミットされていない場合は重要です)。


3
この後に必要ないくつかのファイルを強制的に追加したい場合があります。例えば。.htaccessファイル。もちろんあなたの要件に基づいています。
ダクダッド

3
@dakdad:提案をありがとう。答えを改善しました。ポーが.htaccessすでにチェックインしたような特別なファイルを持っている場合、それらはフォローされ続けます。gitignore新しいファイルでのみ重要です。
DanielBöhmer、

@DanielBöhmer多分これは話題から外れているかもしれ/.gitignoreませんが.gitignore、どこにあるかに関係なくすべてのファイルだけではなく無視しない理由はありますか?つまり、なぜリストしない!.gitignore(スラッシュなし)のですか?
Jason Young

1
@JasonYoung興味深い質問。まあ、このパターンはファイル自体だけを無視します。コピー&ペーストの例としては、副作用がなく、これがより簡潔であることがわかります。もちろん、おそらく.gitignore最上位ファイル内のファイルを無視することはできません.gitignore。しかし、その選択はあなた次第です。
DanielBöhmer

64

.gitignoreは、まだ「追加」されていないファイルにのみ影響します。

新しい.gitignoreエントリを作成するには、すべてのファイルに影響を与えます

  1. .gitignoreに変更を加える
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status 「コミットするものは何もありません(作業ディレクトリはクリーン)」 `

ここで重要なのは、「まだ追加されていない」という行です。指定されたファイルをすでにコミットした場合、無視は機能しなくなるため、リポジトリから削除する必要があり、次に.gitignoreを作成するときに無視します。
Georgi Peev

21

.git/info/exclude、次の行を追加します。

.*

これにより、すべての非表示/ドットファイルを再帰的に無視することが、マシン上のすべてのリポジトリのデフォルトになります。.gitignoreこの方法では、リポジトリごとに個別のファイルは必要ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.