이전 태그 테스트
이 단계에서는 최신 커밋에 있지 않을 때 git describe --tags가 어떻게 동작하는지 살펴보겠습니다. 이 명령이 태그와 관련하여 프로젝트 기록에서 자신의 위치를 이해하는 데 어떻게 도움이 되는지 보여줍니다.
먼저, 프로젝트 디렉토리에 있는지 확인합니다.
cd ~/project/my-time-machine
현재 v1.1로 태그된 최신 커밋에 있습니다. git describe --tags를 다시 사용하여 확인해 보겠습니다.
git describe --tags
현재 커밋이 v1.1 태그가 가리키는 정확한 위치에 있기 때문에 출력은 v1.1이어야 합니다.
이제 v1.0 태그를 생성한 커밋으로 돌아가 보겠습니다. git checkout 다음에 태그 이름을 사용하여 이 작업을 수행할 수 있습니다.
git checkout v1.0
'detached HEAD' 상태에 있다는 출력을 보게 됩니다. 지금은 이에 대해 걱정하지 마십시오. 이는 브랜치의 끝이 아닌 특정 커밋을 보고 있다는 의미입니다.
Note: switching to 'v1.0'.
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.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command (for example,
'git switch -c <new-branch-name>'). Or, if you meant to switch to a number
of commits past an existing branch, what you probably want is to use
'git switch <branch-name>~<number>'.
Switched to a new branch 'v1.0'
이제 v1.0으로 태그된 커밋에 있으므로 git describe --tags를 다시 실행해 보겠습니다.
git describe --tags
출력은 다음과 같아야 합니다.
v1.0
이는 현재 커밋이 v1.0 태그가 있는 정확한 위치에 있기 때문입니다. 현재 위치와 v1.0 태그 사이에 커밋이 없습니다.
v0.9 태그를 생성한 커밋으로 돌아가 보겠습니다.
git checkout v0.9
다시, detached HEAD 메시지를 보게 됩니다.
이제 git describe --tags를 실행합니다.
git describe --tags
출력은 다음과 유사해야 합니다.
v0.9
이는 git describe --tags가 커밋 기록에서 현재 위치에서 가장 가까운 태그를 올바르게 식별함을 확인합니다. 태그와 관련하여 커밋을 설명하는 이러한 기능은 다양한 시점에서 프로젝트의 상태를 이해하는 데 매우 유용합니다.
master 브랜치의 최신 커밋으로 돌아가려면 다음을 사용할 수 있습니다.
git checkout master
master 브랜치로 다시 전환되었음을 나타내는 출력을 보게 됩니다.
Switched to branch 'master'
Your branch is up to date with 'origin/master'.