6

私のgitリポジトリでは、多くのファイルのutf-8変換を実行しましたが、.gitディレクトリの下にのみあるため、.gitディレクトリは変更されませんでした。この変換の前に、新しいテストブランチを作成しましたが、リポジトリを使用できなくなり、マスターに戻すことができなくなりました。私がする時:

git status 

または私が得る他のgitコマンド:

error: bad index file sha1 signature 
fatal: index file corrupt 
fatal: 'git status --porcelain' failed in submodule core/kimai-mobile

私はそれについて検索し、コマンドを見つけました:

rm -f .git/index 

そしてこの後:

git reset

しかし、これは役に立ちませんでした。何が悪いのかわかりません。次に、「サブモジュール」コア/キマイモバイルを削除しましたが、突然再び使用できるようになりました。

このディレクトリにこの他のgitリポジトリがあり、変換によって他のインデックスファイルを破棄しました。私の問題は、「メイン」リポジトリのインデックスファイルを意味していると思ったことです。

今、それは再び働いています:)


私の質問は、無視リストにこのサブモジュールのフォルダー全体が含まれているのに、なぜgitがこのサブモジュールを調べたのかということです。

これは私の「メイン」gitの無視ファイルです:

.gitignore

...
# kimai mobile
kimai-mobile
...
4

1 に答える 1

6

サブモジュールは完全な git リポジトリです。したがって、.git サブディレクトリ (または少なくともそのリンク) を含めることができます。

そのため、ルート リポジトリのルートにある .git 以外のすべてのファイルに対してツールを使用すると、サブモジュール内の一部の内部 .git ファイルが破損する可能性があります。

于 2012-07-20T17:54:15.860 に答える