web-dev-qa-db-ja.com

「致命的:git status --porcelain failed」と表示されるのはなぜですか?

これはお尻の大きな痛みです。私はこれを数回前に持っていて、なぜか分かりません。 5分前、レポは問題なく機能していました。いくつかのファイルを移動し(これはすべてクールですべてです)、gitはズボンをうんちします。なぜこれが起こるのか?リポジトリのクローン作成、ファイルの移動などとは別に、どうすれば修正できますか?.

33
Ahmed Nuaman

ああ、私はそんなに失敗しています。問題は、Flash Builderが他の.gitリポジトリをサブフォルダーにコピーすることに起因するようです。答えは、リポジトリのフォルダではない.gitフォルダをすべて削除することです。

45
Ahmed Nuaman

それが他の人に役立つ場合は、同じ問題が発生し、git initプロジェクトルートで修正しました。

7
Jordan Running

(独自の.gitサブフォルダーを使用して)サブモジュールが破損しているか、適切に初期化されていないため、このエラーに遭遇しました。サブモジュールフォルダーを一時的に削除し、メインプロジェクトのルートでgit initを使用しました。私の問題を修正しました。

7
Michael Thiel

私はこれが古いスレッドであることを知っていますが、同じ問題を抱えていて、別の方法で解決してしまいました。 git initうまくいきませんでした。他の人に役立つ場合に備えて、ここに投稿します。

私のリポジトリには2つのサブモジュールがあります。リベースした後、エラー致命的:git status --porcelain failedが発生し始めました。

解決策は、すべてのサブモジュールworktreeファイルのプロパティconfigを確認することでした。 <repository-checkout>/.git/modules/<submodule-name>/config

worktreeプロパティに無効なパスが1つありました。変更されてmasterにマージされた存在しないフォルダにリンクしていました-おそらく競合の解決エラーが原因です。

6
Tom

同じ問題がありました。ランニング 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そのサブモジュールのフォルダーで私のためにそれをしました。

3
Web_Designer

私の場合、git 2.12.2でmoduleA/mySubmoduleを使用してmoduleB/mySubmodulegit 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

それから私は次のことをしました(たぶんこの順序ではありません)

  1. .gitmodulesエントリを手動でmoduleBに更新します
  2. .git/modulesと入力し、古いモジュールフォルダの名前を変更します
  3. moduleBと入力して、サブモジュールフォルダを削除します
  4. git submodule syncおよびgit submodule updateを実行します

その後、問題なくgit statusを再度実行できました。

1
Checo R

通常、gitはプロジェクトのルートディレクトリ(.git /)に隠しディレクトリを作成します

CMSで作業している場合、特定のモジュール/プラグインのgitのメタデータを含む.git /ディレクトリを含むモジュール/プラグインをインストールできます。

Gitのサブモジュール機能を使用したくない場合は、ルートgitメタデータディレクトリを除くすべての.gitディレクトリを削除してください。そうすると、gitはそれらのモジュールをプロジェクトのサブモジュールと見なしません。

cd /path/to/your/project/code
find ./ | grep ".git/index"

見つかったら、ルートディレクトリを除くすべてのディレクトリ「.git」を削除しますが、削除した場合は、リポジトリを再度初期化します。

0
yilmi

.gitはサブモジュール内のファイルであり、ルートにあるディレクトリを指します.gitディレクトリ。

私の場合、私はDockerにgitディレクトリをマウントして、そこでステータスを確認していました。このサブモジュールの.gitファイルには、Dockerでは無効な絶対パスが含まれていました。これを編集しました.git file to gitdirパスを相対パスに変更

Gitバージョン:2.7.4

0
git remote -v
#now run the same commands 
git remote add Origin remote-repository-url.git
git Push Origin master

//とてもうまくいきます

0
Bang Andre

リポジトリに.gitフォルダーがありませんが、新しいファイルをフォルダーにコピーしてアプリを更新するときはいつでも、インデックスの破損した磁器のエラーが発生します。ファイルの更新がこれをどのように破損させるか、またはそれを修正する方法がわかりません。誰かこれについてさらに洞察がありますか?

0
rncrtr

私にとってそれは違っていたし、git initが問題を解決しなかったし、worktreeも間違っていなかった。私が持っていたエラーは

fatal: unable to create threaded lstat
fatal: 'git status --porcelain=2' failed in submodule ext/hdf5

私にとっての解決策はgit gcでした。

0
Zythos