소개
이 랩에서는 Git 태그가 특정 브랜치와 연결되어 있는지 확인하는 방법을 배우게 됩니다. git branch --contains 명령을 사용하여 태그가 가리키는 커밋을 포함하는 브랜치를 식별할 것입니다.
또한 git log를 사용하여 태그된 커밋이 브랜치의 히스토리에 존재하는지 시각적으로 확인하고, 태그된 커밋을 포함하지 않는 브랜치에서 git branch --contains의 동작을 테스트할 것입니다.
이 랩에서는 Git 태그가 특정 브랜치와 연결되어 있는지 확인하는 방법을 배우게 됩니다. git branch --contains 명령을 사용하여 태그가 가리키는 커밋을 포함하는 브랜치를 식별할 것입니다.
또한 git log를 사용하여 태그된 커밋이 브랜치의 히스토리에 존재하는지 시각적으로 확인하고, 태그된 커밋을 포함하지 않는 브랜치에서 git branch --contains의 동작을 테스트할 것입니다.
이 단계에서는 git branch --contains 명령을 태그와 함께 사용하는 방법을 살펴보겠습니다. 이 명령은 특정 커밋을 포함하는 브랜치를 찾는 데 유용하며, 태그는 특정 커밋을 가리키므로, 태그가 가리키는 커밋을 포함하는 브랜치를 확인하는 데 사용할 수 있습니다.
먼저, 프로젝트 디렉토리에 있는지 확인해 보겠습니다. 터미널을 열고 아직 해당 디렉토리에 있지 않다면 my-time-machine 디렉토리로 이동합니다.
cd ~/project/my-time-machine
이제 새 파일을 만들고 커밋을 수행해 보겠습니다. 이렇게 하면 태그를 지정할 새 커밋이 생성됩니다.
echo "Another message for the future" > message2.txt
git add message2.txt
git commit -m "Add another message"
커밋 후 다음과 유사한 출력이 표시되어야 합니다.
[master a1b2c3d] Add another message
1 file changed, 1 insertion(+)
create mode 100644 message2.txt
이제 이 커밋에 대한 태그를 생성해 보겠습니다. v1.0이라고 부르겠습니다.
git tag v1.0
이 명령은 현재 커밋을 가리키는 v1.0이라는 경량 태그를 생성합니다.
v1.0 태그가 가리키는 커밋을 포함하는 브랜치를 확인하려면 git branch --contains를 사용합니다.
git branch --contains v1.0
master 브랜치만 있고 master의 최신 커밋에 태그를 생성했으므로 출력은 master를 표시해야 합니다.
* master
별표 ( *) 는 현재 체크아웃된 브랜치를 나타냅니다.
이 명령은 태그로 표시되는 특정 마일스톤 또는 릴리스를 통합한 브랜치를 빠르게 식별할 수 있으므로 강력합니다.
이 단계에서는 git log 명령을 사용하여 v1.0 태그가 가리키는 커밋이 실제로 master 브랜치의 히스토리에 있는지 시각적으로 확인합니다. git branch --contains는 어떤 브랜치가 커밋을 포함하는지 알려주지만, git log는 커밋 히스토리를 자세히 볼 수 있게 해줍니다.
아직 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.
이제 git log를 사용하여 master 브랜치의 커밋 히스토리를 살펴보겠습니다. --decorate 옵션을 사용하여 태그와 브랜치 포인터를 표시할 수 있습니다.
git log --decorate --oneline
--oneline 옵션은 각 커밋을 한 줄로 표시하여 간결한 보기를 제공합니다. --decorate 옵션은 각 커밋을 가리키는 참조 (브랜치 이름 및 태그와 같은) 를 표시합니다.
다음과 유사한 출력이 표시되어야 합니다.
a1b2c3d (HEAD -> master, tag: v1.0) Add another message
e4f5g6h Send a message to the future
이 출력에서 커밋 해시 (이 예에서는 a1b2c3d) 와 커밋 메시지를 확인할 수 있습니다. 중요한 것은 최신 커밋 옆에 (HEAD -> master, tag: v1.0)이 표시되어야 한다는 것입니다. 이는 master 브랜치의 최신 커밋이 v1.0 태그가 가리키는 동일한 커밋임을 확인합니다.
git log를 사용한 이 시각적 확인은 git branch --contains에서 제공하는 정보를 보완합니다. 이를 통해 프로젝트의 히스토리에서 브랜치, 태그 및 커밋 간의 관계를 이해하는 데 도움이 됩니다.
기억하세요, git log는 프로젝트의 타임라인을 탐색하는 강력한 도구입니다. 다양한 옵션을 사용하여 출력을 사용자 정의하고 필요한 정보를 찾을 수 있습니다. 페이저에 있는 경우 q를 눌러 로그 보기를 종료하십시오.
이 단계에서는 새 브랜치를 만들고 v1.0 태그가 가리키는 커밋을 기반으로 하지 않는 커밋을 수행합니다. 이렇게 하면 git branch --contains가 지정된 커밋을 포함하지 않는 브랜치에서 어떻게 동작하는지 이해하는 데 도움이 됩니다.
먼저, feature-branch라는 새 브랜치를 만들어 보겠습니다.
git branch feature-branch
이제 이 새 브랜치로 전환해 보겠습니다.
git checkout feature-branch
브랜치가 전환되었음을 나타내는 출력이 표시되어야 합니다.
Switched to branch 'feature-branch'
다음으로, 이 feature-branch에서 새 커밋을 수행해 보겠습니다. 새 파일을 만들겠습니다.
echo "This is a new feature" > feature.txt
git add feature.txt
git commit -m "Add new feature file"
커밋 후 다음과 유사한 출력이 표시되어야 합니다.
[feature-branch a1b2c3d] Add new feature file
1 file changed, 1 insertion(+)
create mode 100644 feature.txt
이제 git branch --contains v1.0을 다시 사용해 보겠습니다. 기억하세요, v1.0은 master 브랜치의 커밋을 가리키고, feature-branch의 새 커밋은 다릅니다.
git branch --contains v1.0
이번에는 출력에 master 브랜치만 표시되어야 합니다.
master
feature-branch는 v1.0 태그가 가리키는 특정 커밋을 포함하지 않기 때문에 나열되지 않습니다. 이는 git branch --contains가 특정 커밋을 히스토리에 가지고 있는 브랜치를 정확하게 식별하는 방법을 보여줍니다.
이는 (버전으로 태그된) 버그 수정 사항이 릴리스 브랜치에 포함되었는지 또는 특정 기능 (잠재적으로 태그됨) 이 다른 개발 라인에 병합되었는지 알고 싶을 때 유용합니다.
이 랩에서는 Git 태그가 브랜치와 연결되어 있는지 확인하는 방법을 배웠습니다. 먼저 git branch --contains <tag> 명령을 사용하여 시작했는데, 이 명령은 지정된 태그가 가리키는 커밋을 포함하는 브랜치를 효과적으로 식별합니다. 새 커밋을 만들고, 태그를 지정한 다음, 태그가 생성된 master 브랜치가 명령에 의해 나열되는지 확인하여 이를 시연했습니다.
그런 다음 git log 명령을 사용하여 태그와 관련된 커밋이 브랜치의 히스토리에 있는지 시각적으로 확인하여 커밋 계보에 대한 자세한 보기를 제공했습니다. 마지막으로, git branch --contains 명령이 태그된 커밋을 포함하지 않는 브랜치에서 어떻게 동작하는지 살펴보고, 특정 태그된 마일스톤의 브랜치 포함 여부를 신속하게 결정하는 데 유용함을 강조했습니다.