특정 원격 브랜치 확인
이전 단계에서는 git branch -r을 사용하여 모든 원격 추적 브랜치를 나열했습니다. 때로는 특정 브랜치가 원격 저장소에 존재하는지 구체적으로 확인해야 할 수 있습니다. git ls-remote를 grep과 결합하거나 git branch -r의 출력을 검사하여 이 작업을 수행할 수 있습니다.
git ls-remote를 다시 사용하되, 이번에는 출력을 필터링하여 origin 원격 저장소에 main 브랜치가 있는지 확인합니다.
~/project/my-time-machine 디렉토리에 있는지 확인합니다.
cd ~/project/my-time-machine
이제 다음 명령을 실행합니다.
git ls-remote origin main
다음과 유사한 출력을 볼 수 있습니다.
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/main
이 명령은 main 참조 (즉, main 브랜치에 해당) 에 대한 정보를 origin 원격 저장소에 구체적으로 요청합니다. 브랜치가 존재하면 가리키는 커밋 해시와 전체 참조 이름 (refs/heads/main) 을 표시합니다. 브랜치가 존재하지 않으면 출력이 없습니다.
또는 git branch -r의 출력을 확인하여 유사한 결과를 얻을 수 있습니다. 이전 단계에서 이미 git fetch origin을 실행했으므로 로컬 저장소에는 원격 브랜치에 대한 정보가 있습니다.
git branch -r을 사용하고 출력을 grep으로 파이프하여 특정 브랜치를 검색할 수 있습니다. 예를 들어, origin/main을 확인하려면 다음을 수행합니다.
git branch -r | grep origin/main
origin/main 원격 추적 브랜치가 존재하면 이 명령은 다음을 출력합니다.
origin/main
존재하지 않으면 grep이 아무것도 찾지 못하고 출력이 없을 것입니다.
git ls-remote <remote> <branch> 및 git branch -r | grep <remote>/<branch>는 모두 원격 저장소에 특정 브랜치가 있는지 확인하는 데 유용한 방법입니다. git ls-remote는 원격 저장소에 직접 쿼리하는 반면, git branch -r은 마지막 fetch 에서 로컬로 캐시된 정보를 사용합니다.