これはお尻の大きな痛みです。私はこれを数回前に持っていて、なぜか分かりません。 5分前、レポは問題なく機能していました。いくつかのファイルを移動し(これはすべてクールですべてです)、gitはズボンをうんちします。なぜこれが起こるのか?リポジトリのクローン作成、ファイルの移動などとは別に、どうすれば修正できますか?.
ああ、私はそんなに失敗しています。問題は、Flash Builderが他の.gitリポジトリをサブフォルダーにコピーすることに起因するようです。答えは、リポジトリのフォルダではない.gitフォルダをすべて削除することです。
それが他の人に役立つ場合は、同じ問題が発生し、git init
プロジェクトルートで修正しました。
(独自の.gitサブフォルダーを使用して)サブモジュールが破損しているか、適切に初期化されていないため、このエラーに遭遇しました。サブモジュールフォルダーを一時的に削除し、メインプロジェクトのルートでgit init
を使用しました。私の問題を修正しました。
私はこれが古いスレッドであることを知っていますが、同じ問題を抱えていて、別の方法で解決してしまいました。 git init
うまくいきませんでした。他の人に役立つ場合に備えて、ここに投稿します。
私のリポジトリには2つのサブモジュールがあります。リベースした後、エラー致命的:git status --porcelain failedが発生し始めました。
解決策は、すべてのサブモジュールworktree
ファイルのプロパティconfig
を確認することでした。 <repository-checkout>/.git/modules/<submodule-name>/config
。
worktree
プロパティに無効なパスが1つありました。変更されてmaster
にマージされた存在しないフォルダにリンクしていました-おそらく競合の解決エラーが原因です。
同じ問題がありました。ランニング git status
ルートプロジェクトのディレクトリで次のエラーが発生しました。
fatal: This operation must be run in a work tree
fatal: 'git status --porcelain' failed in submodule js/object-subscribe
ランニング git status
影響を受けるサブモジュール(js/object-subscribe
)このエラーが発生します:
fatal: This operation must be run in a work tree
ランニング git init
そのサブモジュールのフォルダーで私のためにそれをしました。
私の場合、git 2.12.2でmoduleA/mySubmodule
を使用してmoduleB/mySubmodule
をgit mv moduleA moduleB
に移動した後、次のエラーが発生しました:
$ git status
fatal: Could not chdir to '[../]moduleA/mySubmodule': No such file or directory
fatal: 'git status --porcelain' failed in submodule mySubmodule
fatal: 'git status --porcelain' failed in submodule moduleB
それから私は次のことをしました(たぶんこの順序ではありません)
.gitmodules
エントリを手動でmoduleB
に更新します.git/modules
と入力し、古いモジュールフォルダの名前を変更しますmoduleB
と入力して、サブモジュールフォルダを削除しますgit submodule sync
およびgit submodule update
を実行しますその後、問題なくgit status
を再度実行できました。
通常、gitはプロジェクトのルートディレクトリ(.git /)に隠しディレクトリを作成します
CMSで作業している場合、特定のモジュール/プラグインのgitのメタデータを含む.git /ディレクトリを含むモジュール/プラグインをインストールできます。
Gitのサブモジュール機能を使用したくない場合は、ルートgitメタデータディレクトリを除くすべての.gitディレクトリを削除してください。そうすると、gitはそれらのモジュールをプロジェクトのサブモジュールと見なしません。
cd /path/to/your/project/code
find ./ | grep ".git/index"
見つかったら、ルートディレクトリを除くすべてのディレクトリ「.git」を削除しますが、削除した場合は、リポジトリを再度初期化します。
.git
はサブモジュール内のファイルであり、ルートにあるディレクトリを指します.git
ディレクトリ。
私の場合、私はDockerにgitディレクトリをマウントして、そこでステータスを確認していました。このサブモジュールの.gitファイルには、Dockerでは無効な絶対パスが含まれていました。これを編集しました.git
file to gitdirパスを相対パスに変更。
Gitバージョン:2.7.4
git remote -v
#now run the same commands
git remote add Origin remote-repository-url.git
git Push Origin master
//とてもうまくいきます
リポジトリに.gitフォルダーがありませんが、新しいファイルをフォルダーにコピーしてアプリを更新するときはいつでも、インデックスの破損した磁器のエラーが発生します。ファイルの更新がこれをどのように破損させるか、またはそれを修正する方法がわかりません。誰かこれについてさらに洞察がありますか?
私にとってそれは違っていたし、git init
が問題を解決しなかったし、worktree
も間違っていなかった。私が持っていたエラーは
fatal: unable to create threaded lstat
fatal: 'git status --porcelain=2' failed in submodule ext/hdf5
私にとっての解決策はgit gc
でした。