2017-11-17 17 views
1

コンテンツに関するいくつかの基準に基づいてフルフォルダを無視することは可能ですか?たとえば、少なくとも1つのhtmlファイルを含むすべてのフォルダのすべてを無視したいとします。これはどうすればできますか? (まったく)コンテンツに基づいてフォルダを無視する方法

+1

私はあなたがそれを行うことができるとは思いません。 git-ignoreはファイル名に基づいています。しかし、コンテンツが変更されなければ、.gitignoreを生成するスクリプトを作成することができます –

答えて

2

Gitにはこのような機能はなく、とにかく持っているのはあまり意味がありません。

ディレクトリにファイルがいくつかある場合は、そのファイルの中に.htmlファイルがあるかどうかを簡単に調べることができます。ディレクトリが(サブディレクトリを使用して)多数ある場合、単純なコマンドラインで.htmlファイルを検索し、.gitignoreに入れるために必要なルールを生成できます。

以前に無視されていないディレクトリに.htmlファイルが作成された場合、ディレクトリパスを.gitignoreに追加するだけでは不十分な場合は、既存の追跡ファイルもリポジトリから削除する必要があります。

すべて.htmlのファイルを取得し、.gitignoreに置くためにルールを生成するための簡単なコマンド:

find . -name '*.html' -exec dirname \{\} \; | sort -u 

これは、現在のディレクトリとそのサブディレクトリからすべての.htmlファイルを検索し、それらのそれぞれのdirnameを実行します。次に、findの出力をsortにパイプし、それらをソートして重複を削除します(-u)。

(私はGitリポジトリとその出力をテストしていない、それは小さな微調整が必​​要な場合がありますが、これはアイデアです。)

0

私はgitに直接的な方法はないと思います。しかし、あなたのためのチェックを行うスクリプト(Pythonなど)を実行して、そのフォルダにgitignoreを書き込むことができます。

関連する問題