developer tip

치명적 : 잘못된 기본 개정판 'HEAD'

copycodes 2020. 11. 11. 20:18
반응형

치명적 : 잘못된 기본 개정판 'HEAD'


소스 제어 시스템으로 GIT를 사용하고 있습니다. Linux 박스 중 하나에 설치했습니다. Tortoise GIT는 내 Windows 클라이언트입니다.

오늘 아침에 몇 가지 변경 사항을 확인하고 코드에 태그를 지정했습니다. 그런 다음 로컬 저장소를 원격 저장소로 푸시했습니다.

유닉스 상자의 저장소로 이동하여 다음을 입력 git log하면 다음이 표시됩니다.

fatal: bad default revision 'HEAD'

그러나 show log내 Windows tortoiseGit클라이언트를 사용하면 역사가 아래와 같이 멋지게 나타납니다 ...

---
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'있습니까?

추신 그것은 베어 저장소이지만이 문제가없는 다른 베어 저장소를 만들었습니다.


귀하의 저장소는 귀하의 것이며, 푸시하거나 (허용) 가져 오기 또는 복제 할 때까지 진행되는 것은 전적으로 귀하의 비즈니스입니다. Windows 저장소를 삭제했을 때 해당 폴더는 로컬 저장소를 나타내지 않았고 실제 로컬 저장소였으며 푸시, 가져 오기 또는 복제되지 않은 모든 작업을 삭제했습니다.

편집 : 아, 좋아, 나는 여기서 무슨 일이 일어나고 있는지 알 것 같아. 당신은 당신의 리눅스 저장소에 푸시했지만 베어가 아니고 결코 일하지 않았습니다.

대신 git log수행 git log --all. 또는 git checkoutsome-branch-name.

그런 다음 Linux 상자에서 로컬로 저장소를 복제하십시오. 나는 그것이 효과가 있다고 확신한다. Linux에서 저장소를 제공하기 위해 무엇을 사용하고 있습니까? .git 디렉토리로 cd'ing을 시도하고 git daemon --base-path=. --export-all, 거기에 있으면 Windows 상자로 이동하여 시도 git clone git://your.linux.box.ip하십시오. 데몬이 바인드 할 수 없다고 불평 --port=54345하면 데몬 호출 및 :54345복제 URL에 추가하십시오.


내가 작업중인 브랜치가 저장소에서 삭제되었지만 내가있는 작업 공간이 업데이트되지 않은 경우 이런 일이 발생합니다. (심 링크를 사용하여 동일한 저장소에서 여러 git "workspaces"를 생성 할 수있는 도구가 있습니다.)

경우 git branch현재와 같은 지점을 표시하지 않는 일을하려고

git reset --hard <<some branch>>

이 문제를 해결할 때까지 여러 가지 방법을 시도했습니다.


초기 커밋을 수행하면 오류가 사라집니다.

git commit -m "initial commit"

아직 약속하지 않았습니까?

It is a orphan branch if it has no commit.


Note: Git 2.6 (Q3/Q4 2015) will finally provide a more meaningful error message.

See commit ce11360 (29 Aug 2015) by Jeff King (peff).
(Merged by Junio C Hamano -- gitster -- in commit 699a0f3, 02 Sep 2015)

log: diagnose empty HEAD more clearly

If you init or clone an empty repository, the initial message from running "git log" is not very friendly:

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

Let's detect this situation and write a more friendly message:

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

We also detect the case that 'HEAD' points to a broken ref; this should be even less common, but is easy to see.
Note that we do not diagnose all possible cases. We rely on resolve_ref, which means we do not get information about complex cases. E.g., "--default master" would use dwim_ref to find "refs/heads/master", but we notice only that "master" does not exist.
Similarly, a complex sha1 expression like "--default HEAD^2" will not resolve as a ref.

But that's OK. We fall back to a generic error message in those cases, and they are unlikely to be used anyway.
Catching an empty or broken "HEAD" improves the common case, and the other cases are not regressed.


Make sure branch "master" exists! It's not just a name apparently.

I got this error after creating a blank bare repo, pushing a branch named "dev" to it, and trying to use git log in the bare repo. Interestingly, git branch knows that dev is the only branch existing (so I think this is a git bug).

Solution: I repeated the procedure, this time having renamed "dev" to "master" on the working repo before pushing to the bare repo. Success!


This seems to occur when .git/HEAD refers to a branch which does not exist. I ran into this error in a repo that had nothing in .git/refs/heads. I have no idea how the repo got into that state, I inherited from someone that left the company.


I don't think this is OP's problem, but if you're like me, you ran into this error while you were trying to play around with git plumbing commands (update-index & cat-file) without ever actually committing anything in the first place. So try committing something (git commit -am 'First commit') and your problem should be solved.


I got the same error and couldn't solve it.

Then I noticed 3 extra files in one of my directories.

The files were named:

config, HEAD, description

I deleted the files, and the error didn't appear.

config contained:

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

HEAD contained:

ref: refs/heads/master

description contained:

Unnamed repository; edit this file 'description' to name the repository.

참고URL : https://stackoverflow.com/questions/15628720/fatal-bad-default-revision-head

반응형