로컬 및 원격 태그 비교
이전 단계에서는 원격 저장소의 태그를 나열하는 방법을 살펴보았습니다. 이제 이러한 원격 태그를 로컬 저장소에 있는 태그와 비교하는 방법을 살펴보겠습니다. 이는 로컬 저장소가 원격 저장소와 최신 상태인지 또는 아직 푸시되지 않은 로컬 태그가 있는지 확인하는 데 유용합니다.
먼저, Git 저장소에 있는지 확인하겠습니다. 이 예제를 위해 간단한 저장소를 만들겠습니다. 프로젝트 디렉토리로 이동하여 새 Git 저장소를 초기화합니다.
cd ~/project
mkdir my-tag-repo
cd my-tag-repo
git init
이제 파일을 만들고 초기 커밋을 수행해 보겠습니다.
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
다음으로, 로컬 태그를 만들어 보겠습니다. v1.0이라는 가벼운 태그를 만들겠습니다.
git tag v1.0
이제 git tag 명령을 사용하여 로컬 태그를 나열해 보겠습니다.
git tag
다음과 같은 출력이 표시됩니다.
v1.0
이는 로컬 태그 v1.0이 생성되었음을 확인합니다.
로컬 태그를 원격 태그와 비교하려면 일반적으로 원격 저장소가 필요합니다. my-tag-repo에 대해 아직 원격 저장소를 설정하지 않았으므로 비교 개념을 시뮬레이션할 수 있습니다.
로컬 저장소에 연결된 원격 저장소가 있다고 가정해 보겠습니다. git fetch --tags를 사용하여 변경 사항을 병합하지 않고 원격 저장소에서 최신 정보를 가져올 수 있습니다. 이 명령은 원격 저장소에서 모든 태그를 가져옵니다.
가져오기 후, git tag -l을 사용하여 로컬 태그를 나열하고 git ls-remote --tags origin ( 'origin'이 원격 저장소의 이름이라고 가정) 을 사용하여 원격 태그를 나열할 수 있습니다. 이 두 명령의 출력을 비교하여 로컬에 있는 태그, 원격에 있는 태그, 그리고 둘 다에 있는 태그를 확인할 수 있습니다.
예를 들어, git tag -l이 v1.0 및 v1.1을 표시하지만 git ls-remote --tags origin이 v1.0만 표시하는 경우, 로컬 태그 v1.1이 아직 원격 저장소에 푸시되지 않았음을 의미합니다.
이 랩 환경에서는 푸시할 원격 서버가 없습니다. 그러나 git tag (로컬 태그용) 및 git ls-remote --tags (원격 태그용) 명령을 이해하는 것이 이를 비교하는 핵심입니다.
다음 단계에서는 아직 원격 저장소에 없는 로컬 태그가 있는 시나리오를 살펴보겠습니다.