HEAD, master, origin의 자식 개념은 무엇입니까? 또는 특정 분기 또는 태그의 최신 버전입니까?

git에 대해 배우면서 HEAD, master, origin이라는 용어를 계속 사용하고 있으며 차이점이 무엇인지 잘 모르겠습니다. 올바르게 이해하면 HEAD가 항상 최신 개정과 동일합니까? 그렇다면 전체 리포지토리 또는 특정 분기 또는 태그의 최신 버전입니까? 너무 혼란 스럽습니다. 나는 이것과 분기 / 병합과 같은 것들에 대한 많은 자습서를 읽었지만 여전히 내 머리를 감쌀 수는 없습니다.



답변

Scott Chacon의 “Pro Git” 책을 강력히 추천합니다 . 실제 git repo를 탐색하면서 시간을 들여 실제로 읽으십시오.

HEAD : 현재 repo가 ​​커밋되었습니다. 대부분의 시간 HEAD은 현재 지점의 최신 커밋을 가리 키지 만 반드시 그럴 필요는 없습니다. HEAD“저의 레포가 현재 무엇을 가리키고 있는지”를 의미합니다.

커밋이 HEAD참조하는 것이 분기의 팁이 아닌 경우이를 “분리 된 헤드”라고합니다.

master : 처음으로 repo를 만들 때 git이 생성하는 기본 분기의 이름입니다. 대부분의 경우 “마스터”는 “본점”을 의미합니다. 대부분의 상점에는 모든 사람이 마스터하도록 추진하고 있으며 마스터는 레포의 결정적인 견해로 간주됩니다. 그러나 릴리스 브랜치를 릴리스하기 위해 마스터로 만드는 것도 일반적입니다. 로컬 리포에는 자체 리포지토리가 있으며 거의 ​​항상 원격 리포지토리의 마스터를 따릅니다.

origin : git이 기본 원격 저장소에 제공하는 기본 이름입니다. 귀하의 상자에는 자체 저장소가 있으며 귀하와 모든 동료가 추진하는 원격 저장소로 밀어 낼 가능성이 높습니다. 그 원격 저장소는 거의 항상 원점이라고하지만 반드시 그럴 필요는 없습니다.

HEADgit의 공식 개념입니다. HEAD항상 잘 정의 된 의미를 갖습니다. master그리고 origin일반적으로 자식에 사용되는 일반적인 이름은, 그러나 그들은 될 필요가 없습니다.


답변

HEAD최신 개정판이 아니라 현재 개정판입니다. 일반적으로 현재 분기의 최신 버전이지만 반드시 그럴 필요는 없습니다.

master 는 메인 브랜치에 일반적으로 부여되는 이름이지만 다른 이름으로 불릴 수도 있습니다 (또는 메인 브랜치가 없을 수도 있음).

origin기본 리모컨에 일반적으로 부여되는 이름입니다. remote는 다른 저장소에서 끌어 올 수있는 저장소입니다. 일반적으로 github와 같은 일부 서버에 있습니다.


답변

이 질문에 직접 대답하지는 않지만 ProGit 이라는 기본 사항을 배우는 데 도움이되는 훌륭한 책이 무료로 제공됩니다
. 죽은 나무 버전을 비트 모음보다 선호하려면 Amazon 에서 구입할 수 있습니다 .