1

ファイルを作成.gitignoreしましたが、ステージングされていない変更領域に表示され続けます。

これはプロジェクト (レポ) の一種の構成ファイルであるため、git がこれを自動的に処理しないのはなぜですか? デフォルトでリポジトリの一部になることはできませんか? なぜそのような動作が設計に含まれているのでしょうか? そのような設計のユースケースはありますか?

4

5 に答える 5

5

そのファイルの内容は、プロジェクトのコードが変更されると、おそらく変更する必要があるためです。つまり、プロジェクトを構成するファイルとともに、.gitignore ファイル自体のバージョン履歴を保存できるようにする必要があります。つまり、通常の git コマンドを使用して、そのファイルをコミットするタイミングを制御します。

したがって、git が行うことは他にありません。いずれにせよ、.gitignore のコミットを適切に管理するには、git コマンドを使用する必要があります (編集するたびに .gitignore を暗黙的にコミットするのは、他のファイルが変更されるとすぐに暗黙的にコミットするよりも意味がありません)。ファイルを追跡するすべてのユースケースをカバーしています。したがって、git が .gitignore を特別に扱う必要はありません。

于 2013-07-05T15:58:15.443 に答える
5

他の回答に加えて...

無視されたファイルをリポジトリの一部として追跡し、それをチェックアウトする他のユーザーと共有する場合、.gitignoreファイルは他のファイルと同様に追跡 (チェックインおよびバージョン管理) する必要があります。

無視されたファイルのリストをチェックインしてバージョン管理したくない場合.git/info/excludeは、リポジトリのルートにファイル名を追加します。そのファイルはチェックインされていないため、それに対する変更はステージングされていない変更として表示され続けません。そのファイルは「デフォルトでリポジトリの一部」ですが、作業ツリー内のファイルのようにバージョン管理されていません。

于 2013-07-05T16:01:40.937 に答える
3
  1. Git は、タイプに関係なく、追跡するファイルを認識していることを確認したいと考えています。進行中のファイルに対するこの神経質なレベルの制御が、Git (または他のまともな VCS) を非常に強力にするものです。最初は面倒ですが、git がファイルに対して「魔法」を実行していないのは良いことです。
  2. 誤った.gitignoreファイルはリポジトリに大混乱をもたらす可能性があり、それらを自動的にチェックインすると悲惨な結果になる可能性があります。
于 2013-07-05T15:56:28.603 に答える