여러 브랜치 확인
이 단계에서는 새 브랜치를 만들고 커밋이 여러 브랜치에 있을 때 git branch --contains가 어떻게 동작하는지 살펴보겠습니다. 이는 프로젝트의 브랜치 구조를 이해하는 데 있어 이 명령의 강력함을 더욱 잘 보여줄 것입니다.
먼저, ~/project/my-time-machine 디렉토리에 있는지 확인합니다.
cd ~/project/my-time-machine
이제 feature-branch라는 새 브랜치를 만들어 보겠습니다.
git branch feature-branch
이 명령어는 새 브랜치를 만들지만, 해당 브랜치로 전환하지는 않습니다. 여전히 master 브랜치에 있습니다.
브랜치를 확인해 보겠습니다.
git branch
master가 강조 표시된 상태로 (현재 브랜치를 나타냄) 두 브랜치가 모두 나열되어야 합니다.
* master
feature-branch
이제 git log --oneline을 사용하여 최신 커밋의 커밋 ID 를 다시 가져오겠습니다.
git log --oneline
출력은 이전과 유사합니다.
<commit-id-2> (HEAD -> master, feature-branch) Add another message
<commit-id-1> Send a message to the future
최신 커밋이 이제 HEAD -> master와 feature-branch를 모두 표시하는 것을 확인하세요. 이는 feature-branch가 이 커밋에서 생성되었음을 의미합니다.
이제 이 커밋 ID 로 git branch --contains를 다시 사용해 보겠습니다. <commit-id-2>를 실제 커밋 ID 로 바꿉니다.
git branch --contains <commit-id-2>
이번에는 커밋이 master와 feature-branch의 히스토리에 모두 존재하므로 두 브랜치가 모두 표시되어야 합니다.
* master
feature-branch
이는 git branch --contains가 특정 커밋을 히스토리에 가지고 있는 모든 브랜치를 어떻게 보여줄 수 있는지 보여줍니다. 이는 서로 다른 개발 라인에서 변경 사항이 병합되거나 통합된 위치를 추적하는 데 매우 유용합니다.