[git] HEAD와 마스터의 차이점

Git HEADmasterGit 의 차이점은 무엇입니까 ?

GitHub에서 프로젝트 복제본을 만들고 변경 사항을 원격으로 푸시하고 싶습니다. 그러나 어느 쪽을 밀어야합니까?

스크린 샷



답변

master분기의 끝에 대한 참조입니다. 관례에 따라 (그리고 기본적으로) 이것은 일반적으로 주요 통합 브랜치이지만 반드시 그럴 필요는 없습니다.

HEAD실제로 다른 참조를 가리키는 특수한 유형의 참조입니다. 가리 키 master 거나 가리 키지 않을 수 있습니다 (현재 체크 아웃 된 분기를 가리 킵니다). master브랜치에 커밋하려는 것을 알고 있다면 이것을 푸시하십시오.

다음은 시각적 예입니다.

대체 텍스트

자신의 저장소에서 다음 HEAD을 실행 하여 가 가리키는 위치를 확인할 수 있습니다 .

$ git symbolic-ref HEAD
refs/heads/master

그러나 remotes/origin/HEAD원격 시스템에 있기 때문에를 가리키는 위치를 찾는 것이 더 까다 롭습니다.

git 참조에 대한 훌륭한 튜토리얼이 있습니다.

http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1


답변

간단한 대답은 HEAD현재있는 지점의 가장 최근 커밋에 대한 포인터 / 레이블입니다. mastergit 저장소를 초기화 할 때 생성 된 기본 분기입니다 (예 🙂 git init.

master분기 를 삭제할 수 있습니다 (예 🙂 git branch -D master. HEAD포인터를 삭제할 수 없습니다 .


답변

현재 지점의 변경 사항을 푸시하면됩니다.

git push origin

분기 ‘ B‘변경 사항을 ‘ origin/B‘으로 푸시합니다 .
당신이 당신의 master지점 에 있다면 , 자식은으로 푸시됩니다 origin/master.
실제로는에 일치하는 원격 분기가있는 로컬 분기의 모든 변경 사항을 푸시합니다 origin. 구성 설정 push.default에 의해 제어됩니다 . Pro Git 책에서 RefSpecs 푸시
도 참조하십시오 .


당신이보고있는 것은에서 원격 환매 특약의 모든 refspecs 나타내는 사이드 바있다 실험 GitX 포크GitX 프로젝트를 .

대체 텍스트

HEAD해당 원격에 대한 기본 분기를 지정합니다.
참조 git remote set-head맨 페이지를 :

리모트에 대한 기본 분기가 필요하지는 않지만 특정 분기 대신 리모트의 이름을 지정할 수 있습니다.
기본 분기를 위해이 예를 들어, origin설정되어 master, 다음 origin을 지정할 수 있습니다 당신은 일반적으로 지정합니다 곳 origin/master.


답변