치명적인 : 유효한 개체 이름이 아닙니다 : 'master'


182

git 1.7을 실행하는 개인 서버가 있습니다.

git init 

마스터 분기를 생성하지 않는 폴더. 내가 할 때의 원인 :

git branch 

아무것도 나열하지 않습니다. 내가 할 때 :

git --bare init

파일을 만듭니다. 입력 할 때

git branch master 

그것은 말한다 :

fatal: Not a valid object name: 'master'.

새 브랜치를 생성하려고 할 때도 동일한 결과 :git branch newbranch
Sören

답변:


281

내가하면 git init폴더가 마스터 분기를 만들지 않습니다

이것은 사실이며 예상되는 행동입니다. Git은 master무언가를 커밋 할 때까지 지점을 만들지 않습니다 .

내가 할 때 git --bare init파일을 만듭니다.

베어-레인 git init.git프로젝트 루트의 숨겨진 디렉토리에 동일한 파일을 생성합니다 .

입력 git branch master하면 "치명적 : 유효한 개체 이름이 아닙니다 : 'master'"

그것은 다시 올바른 행동입니다. 커밋 할 때까지 마스터 분기 가 없습니다 .

당신은 질문을하지 않았지만, 당신이 물어 보겠다고 생각한 질문에 대답 할 것입니다. 디렉토리에 하나 이상의 파일을 추가 git add하고 커밋을 준비하십시오. 그런 다음 git commit초기 커밋 및 master분기 를 만듭니다 .


3
"마스터"라는 브랜치 포인터를 전혀 원하지 않으면 어떻게해야합니까? "메인"이라고 부르려면 어떻게해야합니까? 첫 번째 브랜치 포인터의 다른 이름으로 시작하는 방법이 없습니까? "git init"매개 변수가 없습니까? .git / HEAD에 나열된 이름을 바꿀 수 있습니까? 변경해야 할 다른 파일도 있습니까?
메나 케

1
@Jemenake 그런 다음 저장소를 초기화하고 커밋하고 지점 이름을 바꿉니다. "마스터"브랜치를 작성하지 않으려면을 편집 .git/HEAD하고로 변경 refs/heads/master하십시오 refs/heads/main. 그러나 이를 수행 할 이유는 없습니다 . 첫 번째 커밋 후에 지점 이름을 바꾸십시오.
meagar

13
git checkout -b <branchname>HEAD를 변경 하는 데 사용할 수 있습니다 . 파일을 편집 할 필요가 없습니다.
Superfly Jon

1
마지막 부분은 황금색이며 TFS GIT에는 완전히 초기화되지 않은 git repo가 ​​제공됩니다. 따라서 SourceTree를 사용하여 처음으로 복제 한 후에는 아무것도 작동하지 않으며 "다음 커밋 및 마스터 분기를 만들기 위해 git commit"까지 오랫동안 알아낼 수 없었습니다. 초기 커밋 / 푸시없이 마스터 로컬 / 원격을 가질 수있는 방법이 실제로 있습니까?
Pawel Cioch

마지막 설명은 커밋이 없으면 분기가 존재할 수 없다는 것을 이해하는 데 도움이됩니다.
Mayur Patil

23

Git은 첫 커밋을 마치면 마스터 브랜치를 만듭니다. 리포지토리에 코드가없는 경우 분기가 없어야합니다.


1
그러나 당신은 마스터로 밀기 위해 새로운 지점이 필요합니다.
Sören

1
다음은 '처음 커밋을 마치면 Git이 마스터 브랜치를 생성합니다'에 관한 질문입니다. 그렇다면 왜 'git status'가 이러한 지점들 앞에 'On Branch Master'를 표시합니까?
Tick20

16

우선, "베어 리 저장소"를 생성 할 때는 작업을 수행하지 않을 것입니다 (작업 복사본이 포함되어 있지 않으므로 git branch명령이 유용하지 않습니다).

이제 a master를 수행 한 후에도 브랜치 가없는 이유 git init는 커밋이 없기 때문입니다. 첫 번째 커밋을 만들면 master브랜치 가 생깁니다.


1
알았어 하지만 커밋 때 말한다 : 치명적인 : 빈 답하라
로이 반 Zanten

나는 그것을 고쳤다. 그러나 다른 컴퓨터 에서이 저장소를 가져 오거나 가져 오려고 할 때. 거기에 git init을해야합니까?
Roy van Zanten

@RoyvanZanten 수신기 쪽에서 git clone해야 할 작업을 저장하는 데 사용할 수 있습니다 git init.
Borealid

나는 그것을 모두 작동시킬 수 있었다. 오류가 없습니다. 그러나 푸시하려고하면 다음과 같이 말합니다. <bla> bla> Total <3/3> To SERVER 59fa0tweirdcod04 master> master 서버에 파일을 확인하면 아무것도 없습니다.
Roy van Zanten

@RoyvanZanten 서버 저장소 또는 서버 작업 사본을보고 있습니까? git checkoutWC가 .git디렉토리 에있는 내용 (누른 곳)을 반영하려면를 수행해야합니다 .
Borealid

12

새 브랜치를 생성하기 전에 마스터에서 한 번 이상 커밋해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.