(A)의 모든 체크 아웃은 그 중 하나의 이름이 아닌 커밋 당신의 당신에게 분리 된 HEAD를 얻을 것이다 지점. 분기의 끝을 나타내는 SHA1은 여전히 분리 된 HEAD를 제공합니다. 로컬 지점 이름 의 체크 아웃 만 해당 모드를 피합니다.
분리 된 HEAD로 커밋 참조
HEAD가 분리되면 이름 지정된 분기가 업데이트되지 않는다는 점을 제외하고는 커밋이 정상적으로 작동합니다. (이것을 익명 브랜치로 생각할 수 있습니다.)
예를 들어, "원격 지점"을 먼저 추적하지 않고 체크 아웃하면 HEAD가 분리 될 수 있습니다.
git : 헤드 분리없이 분기 스위치 참조
Git 2.23 (2019 년 8 월)을 사용하면 더 이상 혼란스러운 git checkout
명령 을 사용할 필요가 없습니다 .
git switch
또한 다음을 제외하고 지점을 체크 아웃하고 분리 헤드를 얻을 수 있습니다.
HEAD~3
새 분기를 만들지 않고 임시 검사 또는 실험을위한 커밋을 확인하려면 :
git switch --detach HEAD~3
HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits'
- 실수로 원격 추적 지점을 분리 할 수 없습니다
보다:
C:\Users\vonc\arepo>git checkout origin/master
Note: switching to 'origin/master'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
대 새로운 git switch
명령을 사용하여 :
C:\Users\vonc\arepo>git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'
원격 지점을 추적하는 새 로컬 지점을 만들려면 다음을 수행하십시오.
git switch <branch>
경우 <branch>
찾았지만 원격 정확히 하나의 추적 지점은 존재하지 않습니다됩니다 (호출 <remote>
상당으로 일치하는 이름, 치료와 함께)
git switch -c <branch> --track <remote>/<branch>
더 이상 실수가 없습니다!
더 이상 원치 않는 분리 된 헤드!
branch-name@{n}
의 n 번째 이전 위치 를 확인하는 것 입니다branch-name
. 그러나 어쨌든 어느 시점에서git checkout <rev>
. 그것이 종을 울리지 않는다면 아마도 당신은 Will이 언급 한 것을했을 것입니다-git checkout <file>
우연히 수정을 지정 하려고 노력했습니다 .