2017-03-05 6 views
1

Vincent Driessen's modelに基づいて私のリポジトリにいくつかのブランチを作成しました。特定のブランチをチェックアウトできません

私はのgit bashのbranchコマンドを使用すると、開発の長い時間の後に、それは支店f9-junkf9-contact-angleから生じた

$ git branch 
    develop 
    f7-body-force 
    f8-eos 
    f9-contact-angle 
* f9-junk 
    master 

、私を示しています。今f9-junkが行われ、私は戻ってf9-contact-angleにそれをマージしたいのですが、f9-contact-angleをチェックアウトしようとしたとき、gitがこのエラーを与えている:いくつかの他のブランチをチェックアウト

$ git checkout f9-contact-angle 
    fatal: reference is not a tree: f9-contact-angle 

も同じエラーを生成します。だから、Visual Studio Gitを試しました。再度チェックアウト時のエラーf9-contact-angle

An error occurred. 
Detailed message: The tip of branch 'develop' is null. 
There's nothing to checkout. 

何が問題なのですか?

+0

「git rev-parse f9-contact-angle」の出力は何ですか? – knittl

+0

ハッシュ: 'be7f7eee1032b73019cd870e60d6b8ae661e0f6d' – Shaqpad

+0

ハッシュを直接チェックアウトすることはできますか?ブランチ名がハッシュに解決された場合、ブランチ名をチェックアウトすると問題なく動作するはずです – knittl

答えて

1

リポジトリが壊れてしまったようですね(ストレージ・ドライブ上のbitrot、誤って削除したファイル、...)

git rev-parse branchnameはに分岐点をコミットしている、あなたを教えてください。理論的には、コミットを直接チェックアウトし、git cat-file -t commithashのようなコマンドを使用してオブジェクトのタイプを取得することができます(「参照はツリーではありません」)。

git fsckを実行すると、リポジトリのデータベースファイルが完全性チェックされます。通常は "blob/tree/commit"のような良質のメッセージしか表示しませんが、 "invalid sha1 pointer"または "missing commit"が表示された場合、レポが破損します。バックアップ(またはリモートリポジトリ)からリストアする必要があります。

リモートのリポジトリは、ローカルの破損したデータベースの影響を受けてはいけません(プッシュできません)。

関連する問題