다른 브랜치로 테스트
이 단계에서는 새 브랜치를 만들고 해당 브랜치에서 커밋을 수행하여 커밋이 하나의 브랜치에만 있는 경우 git branch --contains가 어떻게 동작하는지 살펴보겠습니다. 이를 통해 Git 이 서로 다른 개발 라인에서 커밋을 추적하는 방식을 확실하게 이해할 수 있습니다.
먼저, feature-branch라는 새 브랜치를 만들어 보겠습니다. ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.
cd ~/project/my-time-machine
git branch feature-branch
이제 새 브랜치로 전환해 보겠습니다.
git checkout feature-branch
새 브랜치로 전환했음을 나타내는 출력이 표시됩니다.
Switched to branch 'feature-branch'
이 feature-branch에서 새 커밋을 만들어 보겠습니다.
echo "Adding a feature" >> feature.txt
git add feature.txt
git commit -m "Add a new feature file"
이제 git log --oneline을 사용하여 이 새 커밋의 커밋 해시를 가져오겠습니다.
git log --oneline
출력은 새 커밋을 맨 위에 표시하고 이전 커밋을 그 뒤에 표시합니다. "Add a new feature file" 커밋의 해시를 복사합니다.
이제 "Add a new feature file" 커밋의 해시로 git branch --contains를 사용해 보겠습니다. [feature_commit_hash]를 복사한 실제 해시로 바꿉니다.
git branch --contains [feature_commit_hash]
출력은 * feature-branch만 표시해야 합니다. 이는 이 특정 커밋이 feature-branch를 생성하고 전환한 후에 만들어졌기 때문에 이 브랜치의 기록에만 존재하기 때문입니다.
이제 git branch --contains를 맨 처음 커밋 ("Send a message to the future") 의 해시로 다시 시도해 보겠습니다. [first_commit_hash]를 이전 단계에서 사용한 해시로 바꿉니다.
git branch --contains [first_commit_hash]
이번에는 출력에 feature-branch와 * master가 모두 표시되어야 합니다. 이는 feature-branch가 master 브랜치에서 생성되었기 때문에 첫 번째 커밋을 포함하여 해당 시점에 master에 있던 모든 커밋을 포함하기 때문입니다.
이것은 git branch --contains가 브랜치와 해당 브랜치에 포함된 커밋 간의 관계를 이해하는 데 어떻게 도움이 되는지 보여줍니다.