77

ソース管理システムとしてGITを使用しています。Linuxボックスの1つにインストールしました。TortoiseGITは私のWindowsクライアントです。

今朝、私はいくつかの変更をチェックインし、コードにタグを付けました。次に、ローカルリポジトリをリモートリポジトリにプッシュしました。

UNIXボックスのリポジトリに移動して入力すると、次のgit logようになります。

fatal: bad default revision 'HEAD'

しかしshow log、WindowstortoiseGitクライアントを使用すると、以下のように履歴がうまく表示されます...

---
SHA-1: f879573ba3d8e62089b8c673257c928779f71692

Initial drop of code

---
master origin/master oms-phase4-v1.0.0
SHA-1: 56176dbe45e6175b18c9f44533828806c63142ab

OMS Phase 4 - Added OMS Cust. Order No. to EDI Purchase Order Header screens

Tag Info

object 56176dbe45e6175b18c9f44533828806c63142ab
type commit
tag oms-phase4-v1.0.0
tagger Richard Riviere <richard.riviere@myer.com.au> 1364338495 +1100

---
SHA-1: 0000000000000000000000000000000000000000

Working dir changes
0 files changed

---

コードは間違いなくリモートリポジトリにプッシュされています。リポジトリを別のディレクトリに複製することで確認できました。

なぜ私が受け取っているのか誰かが知っていfatal: bad default revision 'HEAD'ますか?

psこれはベアリポジトリですが、この問題が発生していない他のベアリポジトリを作成しました。

4

9 に答える 9

44

最初のコミットを行うだけで、エラーはなくなります。

git commit -m "initial commit"
于 2014-11-25T03:17:42.907 に答える
38

これは、作業中のブランチがリポジトリから削除されたが、作業中のワークスペースが更新されていない場合に発生します。(simlinksを使用して同じリポジトリから複数のgit「ワークスペース」を作成できるツールがあります。)

git branchブランチを現在のものとしてマークしない場合は、実行してみてください

git reset --hard <<some branch>>

これを解決するまで、私はいくつかのアプローチを試しました。

于 2013-08-07T09:50:22.867 に答える
25

まだコミットしていませんか?

コミットがない場合は孤立したブランチです。

于 2013-03-26T03:56:20.613 に答える
19

あなたのレポはあなたのものであり、あなたがプッシュするか(許可する)フェッチまたはクローンを作成するまで、そこで行われるのは完全にあなたのビジネスです。Windowsリポジトリを削除すると、そのフォルダはローカルリポジトリを表していませんでした。これは実際のローカルリポジトリであり、プッシュ、フェッチ、またはクローン作成されたことがない、その中で行われたすべての作業を削除しました。

編集: ああ、わかりました、ここで何が起こっているのかわかります。あなたはLinuxリポジトリにプッシュしましたが、それはむき出しではなく、そこで作業したことはありません。

の代わりにgit log、を実行しますgit log --all。またはgit checkoutsome-branch-name

次に、Linuxボックスでリポジトリのクローンを作成してみてください。私はそれがうまくいくに違いない。Linuxでリポジトリを提供するために何を使用していますか?.gitディレクトリにcdしてみてください。git daemon --base-path=. --export-allそれがそこにある場合は、Windowsボックスに移動して、デーモンがデーモン呼び出しとクローンURLにgit clone git://your.linux.box.ipバインドできないと文句を言う場合は試してください。--port=54345:54345

于 2013-03-26T03:47:41.083 に答える
7

注:Git 2.6(2015年第3四半期から第4四半期)では、最終的に、より意味のあるエラーメッセージが表示されます。

Jeff King()によるcommit ce11360(2015年8月29日)を参照してください。濱野純雄による合併---コミット699a0f32015年9月2日peff
gitster

logHEAD:空をより明確に診断する

空のリポジトリを初期化または複製する場合、「git log」の実行による最初のメッセージはあまりわかりやすくありません。

$ git init
Initialized empty Git repository in /home/peff/foo/.git/
$ git log
fatal: bad default revision 'HEAD'

この状況を検出して、よりわかりやすいメッセージを書いてみましょう。

$ git log
fatal: your current branch 'master' does not have any commits yet

また、「HEAD」が壊れた参照を指している場合も検出します。これはそれほど一般的ではないはずですが、見やすいです。
考えられるすべてのケースを診断するわけではないことに注意してください。に依存してresolve_refいます。つまり、複雑なケースに関する情報は取得しません。たとえば、「 」は「」を見つけるため--default masterに使用しますが、「 」が存在しないことに気付くだけです。 同様に、 " "のような複雑なsha1式は、参照として解決されません。dwim_refrefs/heads/mastermaster
--default HEAD^2

しかし、それは大丈夫です。そのような場合は一般的なエラーメッセージにフォールバックしますが、とにかく使用される可能性はほとんどありません。
空または壊れた「HEAD」をキャッチすると、一般的なケースが改善され、他のケースは後退しません。

于 2015-09-03T08:22:04.557 に答える
6

ブランチ「マスター」が存在することを確認してください!どうやら名前だけではありません。

空白のベアリポジトリを作成し、それに「dev」という名前のブランチをプッシュし、ベアリポジトリでgit logを使用しようとした後、このエラーが発生しました。興味深いことに、gitブランチはdevが存在する唯一のブランチであることを知っています(したがって、これはgitのバグだと思います)。

解決策:この手順を繰り返しましたが、今回は、ベアリポジトリにプッシュする前に、作業リポジトリで「dev」の名前を「master」に変更しました。成功!

于 2013-07-15T20:01:17.040 に答える
2

.git/HEADこれは、存在しないブランチを参照する場合に発生するようです。に何も含まれていないリポジトリでこのエラーが発生しました.git/refs/heads。リポジトリがどのようにしてその状態になったのかわかりません。会社を辞めた人から継承しました。

于 2014-11-20T18:01:00.957 に答える
0

これはOPの問題ではないと思いますが、私のように、最初から実際に何もコミットせずにupdate-indexgit配管コマンド( &cat-file)を試してみたときに、このエラーが発生しました。したがって、何か()をコミットしてみてください。そうすれば、問題は解決するはずです。git commit -am 'First commit'

于 2016-08-08T02:22:43.230 に答える
-1

同じエラーが発生し、解決できませんでした。

次に、ディレクトリの1つに3つの余分なファイルがあることに気付きました。

ファイルの名前は次のとおりです。

config, HEAD, description

ファイルを削除しましたが、エラーは表示されませんでした。

config含まれています:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = true

HEAD含まれています:

ref: refs/heads/master

description含まれています:

Unnamed repository; edit this file 'description' to name the repository.
于 2017-01-23T02:15:10.723 に答える