2011-01-06 47 views
26

私は次のフォルダ構造のプロジェクトを持っています:gitステータスに未追跡のファイルが表示されない

すべてのプロジェクトファイルはbase_fldrフォルダにあります。また、base_fldrの中にsub_fldr1とsub_fldr2というフォルダがあります。これらのサブフォルダにもいくつかのファイルが含まれています。

私のbase_fldrまたはbase_fldr \ sub_fldr \の中にあるファイルを変更した場合、git statusに変更されたものが表示されます。また、base_fldrに新しいファイルを追加すると、git statusにはuntrackedファイルとして表示されます。

私の問題は、base_fldr \ sub_fldr \の中に新しいファイルを追加した場合、gitステータスがファイルをuntrackedとして表示しないということです。ファイルについての情報も提供しません。

ファイルまたはその拡張子が.gitignoreリストにありません。また、私はgit add sub_fldr \ file_nameを試してみましたが、どちらもエラーを出さず、インデックスにファイルを追加しませんでした。

ここで何が起こっているのでしょうか?ありがとう!

+3

'git status -u'を実行するとファイルが表示されますか? –

+1

いいえ、それはありませんでした。 git status -uは、base_fldr内に新しく追加されたファイルを表示しますが、base_fldr内のファイルは表示しません\ sub_fldr | – kriver

答えて

20

私は間違っていたことを理解しました。基本的に私の.gitignoreファイルの最初の行は "* /"です。これにより、サブディレクトリに追加されたファイルはgit statusコマンドで無視されます。しかし、面白いのは、サブフォルダ内のファイルを修正すると、git statusは、ファイルが既にgitリポジトリにあるため、サブフォルダ内の新しいファイルを無視しているため、修正されたことを正しく示しています。

サブフォルダ内の変更を無視しないように.gitignoreファイルの行を削除し、インデックスに追加する新しいファイルを追加してから、gitignoreの行をもう一度追加して問題を修正しました。サブフォルダ。

ありがとうございました。

+3

同じことが私に起こりました。そして、私は最終的に私が実際に何か理由のために月前に.gitignoreファイルに作成したフォルダ名を既に追加していることに気付きました!しかし、私はそれをチェックするようにこの答えを+1しました;-) ...と私は-1のStackOverflowを検索する前にも、その最初のチェック – PandaWood

8

sub_fldrディレクトリ内に.gitサブディレクトリがありますか? Gitはあなたがsubmodulesを使用しようとしていると思うかもしれません。

+0

sub_fldrの内部に.gitディレクトリがありません – kriver

+0

下位の.gitサブディレクトリを持っていた場合でも、変更はまだ親に表示されるはずです – quantumpotato

+0

「すべてのファイルを表示」が設定されていることを確認してください。私は ".git"サブディレクトリを持っていましたが、私はそれを見ることができませんでした。しかし、Gitは... – TobyEvans

13

あなたbase_fldrの\ sub_fldr \ディレクトリは人跡未踏であるので、これはあなたが実行した場合、可能性があります:

git add base_fldr\sub_fldr\ 

作業コピーのルートの中から、それが自動的としてそのディレクトリ内のディレクトリおよびその他のファイルやディレクトリを追加しますよく

デフォルトでは、gitは、追跡されていないディレクトリ内のファイルを表示しません。

+0

OPは 'sub_fldr' *内の変更されたファイルは' git status'に表示されていると言います。 –

+0

私のbase_fldr \ sub_fldr \が追跡されます。実際に私が既存のファイルを変更すると、gitのステータスは、変更されたsub_fldr内のファイルを正しく表示します。 – kriver

2

この質問に記載されている動作のもう1つの原因があります(git status untracked filesリストには、追跡されていないファイルがサブフォルダに含まれていません)。 .gitignoreファイルのサブフォルダにファイルがトラッキングされていない場合、そのファイルはgit status untracked filesリストに含まれません。

14

追跡されたファイルが見つからないという同様の問題が発生しました。常に不測のコミットを避けることなく、追跡ファイルのローカルで変更されたバージョンを管理するための方法を試している間、私は次のことを実行しました:

git update-index --assume-unchanged my-tracked-file-that-is-awol 

私はこのアイデアを廃棄することになったが、コマンドを元に戻すのを忘れて、とそう以降の変更これと他の--assume-変更されていないファイルが完全に欠落していた。

git status -u --ignored 

それは何が起こっていたかを把握するために私にしばらく時間がかかったが、私は単純にコマンドを逆にする必要がありました:

git update-index --no-assume-unchanged my-tracked-file-that-is-awol 
関連する問題