Gitのファイルを無視する必要があります!実際、無視することは正しい言葉だとは思いません。ファイルをgitに入れたいのですが、変更をコミットしたくありません。これは一部の人にとっては奇妙なことのように思えるかもしれませんが、この機能を必要とするインスタンスはたくさんあります。私が今必要としているのは、CMSでgitを使用するときです。 CMSは常に変更されているファイルがないと機能しませんが、最初のコミット後にこれらのファイルがコミットされることは望ましくありません。 (これはSVNとTortoiseで非常に簡単です)。
ワークフロー:
ここに私が試したものがあります:
.gitignore
-ファイルがgitに入ることはありません。ファイルが既にキャッシュにある場合、.gitignoreファイルは何もしません。/.git/info/exclude
-.gitignoreと同じ問題ですが、ローカルリポジトリのみが対象です。類似の質問 からの私の答えはここにあります。
git update-index はあなたが望むことをするべきです
これは、ファイルへの変更を無視して開始することをgitに指示します
git update-index --assume-unchanged path/to/file
再び追跡を開始する場合
git update-index --no-assume-unchanged path/to/file
別の解決策は、pre-commit
フックを使用することです。詳細については、git help hooks
を参照してください。
これは設定が難しくなります。シェルスクリプトを作成して、許可または拒否する内容を正確に表現する必要があります。これは、おそらくgitを十分に把握する必要があることを意味します。
より永続的で柔軟性があります。git update-index
などのトリックを使用すると、誤って実行するのを忘れたりする可能性があります。しかし、いったんフックを設定すると、もう一度心配する必要はありません。
提案されている他のトリックと同様に、フックはリポジトリ間で自動的に伝播されませんが、canそれらを通常のファイルとしてチェックインし、全員を.git/hooks
にリンクさせます。