code

내 'git branch'에 마스터가없는 이유는 무엇입니까?

codestyles 2020. 9. 20. 09:59
반응형

내 'git branch'에 마스터가없는 이유는 무엇입니까?


저는 git newbie이고 "마스터"브랜치에 대해 계속 읽고 있습니다. "마스터"는 사람들이 사용하는 관습적인 이름 일 뿐입니 HEAD까 아니면 특별한 의미가 있습니까?

git branch내가 가지고있는 클론에 대해 작업 할 때 하나의 분기 만 표시됩니다. "마스터"는 전혀 없습니다. 입력하면 git checkout master(많은 자습서 또는 가이드에서 볼 수 있듯이)

error: pathspec 'master' did not match any file(s) known to git.

나는 왜 내 클론 master에 모든 사람이 항상 존재한다는 것을 암시하는 것처럼 보이는 이유에 대해 혼란스러워 합니다.


대부분의 Git 저장소가 사용하는 master주요 (및 기본) 지점으로 - 새 망할 놈의 repo를 통해 초기화하는 경우 git init, 그것은 것 master기본적으로 체크 아웃.

그러나 리포지토리를 복제하는 경우 기본 브랜치는 원격이 HEAD가리키는 모든 것입니다 ( HEAD실제로 브랜치 이름을 가리키는 심볼릭 참조 ). 따라서 복제 한 저장소가를 HEAD가리키고있는 경우, foo복제본에는 foo분기 만있을 것 입니다.

원격 당신은 여전히있을 수 있습니다에서 복제 master지점 (당신이 확인할 수 있습니다 git ls-remote origin master),하지만 당신은 기본적으로 해당 분기의 로컬 버전을 생성하지 않았을 때문에 git clone원격의 밖으로 만 확인 HEAD.


로컬에 존재하지 않지만 원격 저장소에있는 브랜치를 체크 아웃하려면 다음 명령을 사용할 수 있습니다.

git checkout -t -b master origin/master

master 브랜치의 이름 일 뿐이며, 새 저장소가 생성 될 때 기본적으로 생성된다는 점을 제외하면 마술은 없습니다.

을 사용하여 다시 추가 할 수 있습니다 git checkout -b master.


실제로 완전히 새로운 저장소에서 동일한 문제가 발생했습니다. 나는으로 하나를 만들려고 시도했지만 git checkout -b master분기를 만들지 않았습니다. 그런 다음 몇 가지 변경 사항을 적용하고 커밋하면 git이 마스터 브랜치를 만들었습니다.


제 경우에는 개발 브랜치가 있었지만 마스터 브랜치는 없었습니다 . 따라서 새로 생성 된 HEAD를 기존 브랜치로 가리키는 저장소를 복제했습니다. 그런 다음 누락 된 마스터 분기를 만들고 새 마스터 분기를 가리 키도록 HEAD를 업데이트합니다.

git clone git:repositoryname --branch otherbranch
git checkout -b master
git update-ref HEAD master
git push --set-upstream origin master

복제 한 새 저장소 인 경우 여전히 비어있을 수 있습니다.

git push -u origin master

아마도 그것을 분류해야합니다.

(내 경우에 있었습니까. 이것이 동일한 문제인지 확실하지 않습니다.이를 게시해야한다고 생각했습니다. 다른 사람들에게 도움이 될 수 있습니다.)


나는 같은 문제에 부딪 쳤고 문제를 파악했습니다. 저장소를 초기화 할 때 실제로 분기가 없습니다. 프로젝트 실행을 시작하면 git add .다음과 git commit마스터 지점이 생성됩니다.

아무것도 확인하지 않으면 마스터 브랜치가 없습니다. 이 경우 다른 사람들이 제안한 단계를 따라야합니다.


마스터 브랜치에 적어도 하나의 로컬 커밋이 있어야 할 것 같습니다.

git push -u origin master

따라서 git init .다음 git remote add origin ...을 수행 경우 에도 다음 을 수행해야합니다.

git add ...
git commit -m "..."

참고 URL : https://stackoverflow.com/questions/3623755/why-does-my-git-branch-have-no-master

반응형