2012-01-27 15 views
4

私はgitリポジトリを作成し、コードを追加してGitHubにプッシュしました。Gitがサブディレクトリ内で変更を追跡しないのはなぜですか?

次にローカルでは、ファイルEila.Analyser/Program.csを編集しました。このファイルは、最初のコミットでGitHubに追加され、保存されました。git statusには変更はありません。

私は、git reset --hard HEADという何かを混乱させていたに違いないと思っています。私はすべてを元に戻すべきだと理解していますが、私のファイルは元に戻りません。

私は何か間違っていると思います。私はルートフォルダにあるファイルを編集します。git status - 変更があることを示していると思われますので、ルートフォルダ内のファイルは動作しますが、サブフォルダは動作しません。

私はここで何かが分かりませんか?

UPDATE:、私は編集をしています、そのファイルが実際にコミットされた証拠(git log --stat):

enter image description here

それが助け場合、ツリーの絵:

enter image description here

アップデート2:[OK]を、私は本当に何かを混乱させたと思ったので、私は解決策はどこにあったのですか?gitHubからもう一度クローンを作成しましたが、私のローカルコードはgitHubの既存のものとはまだ異なります。変更なし、git log origin/master..HEADは何も与えません。

+1

愚かな質問:Program.csは.gitignoreファイルにありませんか? – Joe

+0

いいえ、そうではありません。またサブディレクトリにあるapp.configという別のファイルを変更しようとしましたが、これも機能しません。 – Giedrius

+2

@Giedriusあなたは分離した頭の中にいますか? (http://stackoverflow.com/questions/8213826/egit-branches-local-vs-remote-tracking/8218067#8218067、http://stackoverflow.com/a/1000009/6309)? 'git branch'は何を返しますか? – VonC

答えて

6

最後にそれは働いた。私はローカルフォルダ内の変更されたファイルを削除しました - そして、突然git statusが見始めた、それらのファイルが欠落しています。だから私はそれらを復元し、git statusが見始めた、そのファイルが変更されます。

+0

同じです。 README.mdを削除し、 "git status"を実行したところ、変更されたファイルがリストに再び含まれていました。 – karlingen

+1

私はフォルダの名前を変更し、gitがそれを認識しました。 – AskYous

9

git update-index --really-refreshを試してみてください。

私はWindows上で同様の問題を抱えていましたが、解決しました。

さらに、でcore.ignoreStatオプションをチェックする必要があります。

+0

did not worked、git config --get core.ignoreStatは何も返しませんでした。 – Giedrius

+0

これには慎重。私はそれを実行し、それは私が行った変更を取り消した。しかし、私はそれらの変更を再び行うことができ、追跡されました。 –

+0

@ JasonSteele:私はその動作が 'update-index'によって引き起こされるとは思わない。名前やドキュメントのように、インデックスを更新するだけで作業ディレクトリは変更されません。 – Koraktor

0

私は同じ問題を抱えていました。 Giedriusのソリューションも私のために働いた。私はディレクトリ全体を削除し、それを再追加しました。これは問題を解決しました

1

私は同じ問題を抱えていることがあります。特に別のgit repo自体のサブフォルダがある場合は特にそうです。解決策は、フォルダの名前を変更することです。フォルダ名を別のものに切り替えてみてください。それをコミットし、それを元に戻します。 サブフォルダ自体が別のGitリポジトリであり、それをメインストリームから完全に切り離してrepoに従う場合は、まずそのサブフォルダのリモートを削除する必要があります。

関連する問題