プロジェクトにGit環境を構築しています。問題は、私たちのプロジェクトには生成された SW パッケージ (c ファイル) が含まれており、そのパッケージには生成時間情報がコメントアウトされていることです。したがって、SW パッケージを生成するたびに、有効な変更がないにもかかわらず、すべてのファイルの内容が変更されます。したがって、c ファイルのコメントアウトされた部分を追跡したくありません。何か方法はありますか?
2 に答える
通常の解決策は、sw/ ディレクトリを .gitignore ファイルで無視される要素のリストに追加することです。
sw/
しかし、チェックアウトの時間的制約のためにこれらの生成されたファイルが必要な場合は、最初にそれらを「assume-unchanged」にすることができます。
「git update-index --assume-unchanged on directory」を参照してください。
そうすれば、それらのファイルはgit status
変更されても に表示されません。
リポジトリをチェックアウトするすべての人の長い生成時間を本当に避けたい場合は、別のオプションとして、生成されたファイルからコメントを削除するか、誤った変更を避けるためにタイムスタンプ コメントのみを削除することもできます。もちろん、これにはソースと生成されたバージョンが非同期になる可能性があるという問題があります。
コメントが常に 1 行で、簡単に正規表現できる単純なパターンに従う場合 (その可能性が高いと思われます)、これはgrep
orなどでそれほど難しいことではありませんsed
。
そうでない場合は、 で他にgcc -fpreprocessed -dD -E file.c
何も変更せずにすべてのコメントを削除できると思われますが、そのページには、常に機能するとは限らず、他のいくつかのオプションを提供しているという他の回答があります。