Git HEAD
과 master
Git 의 차이점은 무엇입니까 ?
GitHub에서 프로젝트 복제본을 만들고 변경 사항을 원격으로 푸시하고 싶습니다. 그러나 어느 쪽을 밀어야합니까?
Git HEAD
과 master
Git 의 차이점은 무엇입니까 ?
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
현재있는 지점의 가장 최근 커밋에 대한 포인터 / 레이블입니다. master
git 저장소를 초기화 할 때 생성 된 기본 분기입니다 (예 :) git init
.
master
분기 를 삭제할 수 있습니다 (예 :) git branch -D master
. HEAD
포인터를 삭제할 수 없습니다 .
HEAD
는 현재있는 지점의 가장 최근 커밋에 대한 포인터 / 라벨입니다." 나는 이것이 오도라고 생각합니다. 이전 커밋을 체크 아웃하면 HEAD는 이제 최신 커밋이 아닌 이전 커밋에 대한 포인터입니다. 권리?
checkout
명령은 다른 일반적인 SCM 시스템에서 분기를 전환하는 것과 같습니다.
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
.