0

プロジェクトにGitを使用しています。昨夜まで、リポジトリは稼働していて、いつものように一日の終わりまでにコンピュータをシャットダウンしました。

今朝、git statusいつものようにプロジェクトフォルダーから実行しようとすると、次のエラーが発生します。fatal: not a git repository (or any of the parent directories): .git

コンピューターをシャットダウンして今朝再起動するまでの間、何も起こらなかったことを知っているので、なぜリポジトリがそのように消えてしまうのか混乱しています。.gitフォルダと.gitignoreファイルがプロジェクトフォルダに残っていることは何の価値もありません。

git stashここでの私の問題は、新しいフォルダーでリポジトリのフレッシュチェックアウトを実行できたとしても、作成に数時間かかったSQLクエリのスクリプトやその他の部分を含め、昨日(を使用して)隠していたコードが残っていることです。まだコミットする準備ができていない未完成の作業を保存するために多くのスタッシングを使用しているため、コードの内容を正確に覚えていません。

私はインターネット、特にこの場所を検索しましたが、同じ問題を抱えている人は誰もいなかったので、さらに奇妙になりました。

4

3 に答える 3

2

\.gitサブディレクトリがまだある場合は、チャンスがあります。破損しているエントリが1つある可能性があります。フォルダが適切なリポジトリであるかどうかを確認するためにGitがチェックする特定のコンテンツを思い出せませんが、これらの内容は通常、少しの忍耐力で回復できます。

最初にバックアップを取ります。次に、念のために別の方法を使用して別の方法を取ります(.gitは通常隠しファイルです)

あなた.gitのディレクトリ構造は何ですか-それはすべての期待されるコンテンツを持っていますか?

比較を探すためにほとんどのコンテンツをプッシュするリモコンはありましたか?

更新:「.git/HEADの存在はgitリポジトリの2次チェック」を参照してください

于 2012-11-09T19:40:23.257 に答える
1

必須の質問:バックアップはありますか?

そうでない場合:悪い。

はいの場合:リポジトリのバックアップを別のディレクトリに復元し、作業中であることがわかっている最新のブランチ/コミットを確認します。そのバックアップにも隠し場所がある場合は、新しいブランチにコミットします。次に、そのブランチのソースファイルを破損したリポジトリのソースファイルで上書きします。これにより、最後に損傷を受けていない、バックアップされた状態と、その間に行ったことの違いがわかります。あなたもそれを隠しておくことができます。

このため、私は通常、早い段階で頻繁にコミットし、バックアップとして外部リポジトリにプッシュします。

于 2012-11-09T10:50:11.680 に答える
1

同じ問題が発生しましたが、実行中にPCの電源が突然オフになりましたgit merge

どうやら、問題は、シャットダウン後にHEADファイルが破損していることです。解決策は、ファイルをチェック.git/HEADしてコンテンツを次のように置き換えることです。

ref:refs / heads / development

developこれは、PCがシャットダウンする前の現在のブランチであることに注意してください。また、これはすべての場合に機能するとは限りませんが、試してみる価値があります。

于 2018-03-28T17:42:14.007 に答える