힘내 태그를 확인하면 "분리 HEAD 상태"가됩니다
내 자식 프로젝트의 배포 스크립트를 개발 중이며 방금 태그를 사용하기 시작했습니다. 다음과 같은 새로운 태그를 추가했습니다 v2.0
.
git tag -a v2.0 -m "Launching version 2.0"
이 태그를 원격 저장소에 푸시했습니다
git push --tags
배포 스크립트를 실행하고 v2.0
태그를 확인하려고 하면이 메시지가 나타납니다.
'분리 된 HEAD'상태입니다. 둘러보고 실험적으로 변경하고 커밋 할 수 있으며 다른 체크 아웃을 수행하여 분기에 영향을주지 않고이 상태에서 커밋을 버릴 수 있습니다. 생성 한 커밋을 유지하기 위해 새 브랜치를 만들려면 checkout 명령과 함께 -b를 다시 사용하여 지금 만들거나 나중에 할 수 있습니다. 예 : git checkout -b new_branch_name HEAD는 현재
그게 정상인가요? 내가 할 경우 저장소는 림보에 있습니다.
git branch
나는이 출력을 얻는다 :
* (no branch)
master
이것이 명백한 경우에 죄송하지만 알아낼 수 없었습니다.
먼저 몇 가지 용어가 약간 단순화되었습니다.
에서 git
하는 tag
(같은 많은 다른 것들)을 불리는 것입니다 treeish . 프로젝트의 역사에서 요점을 언급하는 방법입니다. 나무는 태그, 커밋, 날짜 지정자, 서수 지정자 또는 기타 여러 가지가 될 수 있습니다.
이제 a branch
는 태그와 같지만 움직일 수 있습니다. 브랜치를 "켜고"커밋하면 브랜치는 현재 위치를 나타내는 새 커밋으로 이동합니다.
귀하 HEAD
는 "현재"로 간주되는 지점에 대한 포인터입니다. 당신이 저장소를 복제 할 때 일반적으로 HEAD
가리 킵니다 master
커밋에 차례로 가리 킵니다있다. 그런 다음과 같은 작업을 수행 하면 다른 커밋 을 가리킬 수있는 분기 를 가리 키도록 git checkout experimental
전환합니다 .HEAD
experimental
이제 설명입니다.
을 수행하면 git checkout v2.0
으로 지정되지 않은 커밋으로 전환됩니다 branch
. 는 HEAD
지금 "분리"와 지점을 가리키는되지 않습니다. 지금 커밋을하기로 결정했다면이 커밋을 추적하기 위해 업데이트 할 분기 포인터가 없습니다. 다른 커밋으로 다시 전환하면이 새로운 커밋을 잃게됩니다. 그것이 메시지가 말하는 것입니다.
일반적으로 할 수있는 일은을 말하는 것 git checkout -b v2.0-fixes v2.0
입니다. 이렇게하면 커밋에서 나무가 가리키는 커밋 v2.0
(이 경우 태그)에 새 분기 포인터가 만들어 지고이를 HEAD
가리 키도록 이동합니다 . 이제 커밋을하면 v2.0-fixes
분기를 사용하여 커밋을 추적 할 수 있으며 평상시처럼 작업 할 수 있습니다. v2.0
코드를 보고 싶을 때 특히 수행 한 작업에 "잘못된"것은 없습니다 . 그러나 추적하려는 위치를 변경하려면 지점이 필요합니다.
git의 전체 DAG 모델을 이해하는 데 시간을 투자해야합니다. 놀랍도록 간단하고 모든 명령을 명확하게 만듭니다.
예, 정상입니다. 이는 헤드가없는 단일 커밋을 체크 아웃하기 때문입니다. 특히 (더 이상) 지점의 헤드가 아닙니다.
그러나 일반적으로 해당 상태에는 문제가 없습니다. 안전하다고 느끼면 태그에서 새 브랜치를 만들 수 있습니다. :)
참고 URL : https://stackoverflow.com/questions/5582208/checking-out-git-tag-leads-to-detached-head-state
'Programming' 카테고리의 다른 글
모든 빌드에서 Visual Studio로 T4 템플릿 실행 (0) | 2020.06.03 |
---|---|
웹 API에서 속성이 직렬화되지 않도록 방지 (0) | 2020.06.02 |
사용자 정의보기를 위해 attrs.xml에서 동일한 이름의 속성 (0) | 2020.06.02 |
스파크 콘솔에서 정보 메시지 표시를 중지하는 방법? (0) | 2020.06.02 |
Ruby에서 문자열 또는 정수를 이진으로 변환하는 방법은 무엇입니까? (0) | 2020.06.02 |