Git 원격 브랜치 존재 여부 확인 방법

GitBeginner
지금 연습하기

소개

이 랩에서는 특정 Git 브랜치가 원격 저장소에 존재하는지 확인하는 방법을 배우게 됩니다. 이를 달성하기 위한 두 가지 주요 방법을 살펴보겠습니다.

먼저, git ls-remote 명령을 사용하여 원격 저장소의 URL 을 제공하여 브랜치를 포함한 참조를 검사합니다. 이를 통해 클론 (clone) 하지 않고도 원격 저장소에서 사용 가능한 항목을 확인할 수 있습니다. 이어서, 로컬 저장소에서 추적하는 원격 브랜치를 나열하기 위해 git branch -r 명령을 사용하는 방법을 배우게 됩니다. 마지막으로, 이러한 기술을 적용하여 원격 저장소에 특정 브랜치가 존재하는지 확인합니다.

git ls-remote 실행하여 원격 확인

이 단계에서는 로컬 Git 저장소와 연결된 원격 저장소를 확인하는 방법을 배우겠습니다. 원격 저장소는 본질적으로 GitHub, GitLab 또는 Bitbucket 과 같은 플랫폼에서 호스팅되는 인터넷 또는 네트워크에 있는 프로젝트의 버전입니다. 이를 통해 다른 사람들과 협업하고 작업을 백업할 수 있습니다.

현재 프로젝트에 구성된 원격 저장소를 보려면 git remote 명령을 사용할 수 있습니다. 그러나 원격에서 사용 가능한 참조 (브랜치 및 태그) 를 포함하여 원격에 대한 자세한 정보를 얻으려면 git ls-remote 명령을 사용합니다.

먼저, 프로젝트 디렉토리에 있는지 확인해 보겠습니다. 터미널을 열고 my-time-machine 디렉토리로 이동합니다.

cd ~/project/my-time-machine

이제 git ls-remote를 사용하여 원격 저장소를 확인해 보겠습니다. 이 예제에서는 공개 Git 저장소를 사용합니다. 다음 명령을 입력합니다.

git ls-remote https://github.com/labex-io/example-repo.git

다음과 유사한 출력을 볼 수 있습니다.

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 HEAD
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 refs/heads/main
... (other references)

이 명령은 지정된 URL 의 원격 저장소에 연결하여 해당 저장소에서 사용 가능한 모든 참조 (브랜치 및 태그) 를 해당 커밋 해시와 함께 나열합니다. HEAD 참조는 일반적으로 기본 브랜치 (대개 main 또는 master) 를 가리킵니다.

git ls-remote를 이해하는 것은 전체를 클론 (clone) 하지 않고 원격 저장소를 검사하려는 경우 유용합니다. 원격에서 사용 가능한 브랜치와 태그에 대한 간략한 개요를 제공합니다.

git branch -r 을 사용하여 원격 브랜치 목록 확인

이전 단계에서는 git ls-remote를 사용하여 URL 을 제공하여 원격 저장소의 참조를 확인했습니다. 특히 로컬 저장소에 이미 추가한 원격 저장소의 원격 브랜치를 확인하는 또 다른 일반적인 방법은 -r 플래그와 함께 git branch 명령을 사용하는 것입니다.

git branch 명령은 주로 로컬 브랜치를 나열, 생성 또는 삭제하는 데 사용됩니다. -r 플래그를 추가하면 Git 이 원격 추적 브랜치를 나열하도록 지시합니다. 원격 추적 브랜치는 원격 저장소의 브랜치 상태를 추적하는 로컬 저장소의 참조입니다. fetch 또는 pull과 같은 Git 작업을 수행할 때 자동으로 업데이트됩니다.

현재 my-time-machine 저장소에는 아직 추가된 원격 저장소가 없으므로 먼저 원격 저장소를 추가하여 git branch -r을 사용할 수 있도록 하겠습니다. 이전 단계에서 사용한 동일한 예제 저장소를 origin이라는 원격 저장소로 추가하겠습니다.

아직 ~/project/my-time-machine 디렉토리에 있는지 확인합니다.

cd ~/project/my-time-machine

이제 원격 저장소를 추가합니다.

git remote add origin https://github.com/labex-io/example-repo.git

이 명령은 지정된 URL 을 가리키는 origin이라는 새 원격 저장소를 추가합니다. origin은 기본 원격 저장소에 대한 일반적인 이름입니다.

이제 원격 저장소가 구성되었으므로 git branch -r을 사용하여 원격 브랜치를 나열할 수 있습니다. 그러나 git branch -r이 원격 브랜치를 표시하려면 로컬 저장소에서 해당 브랜치에 대해 알아야 합니다. 이 정보는 원격 저장소에서 가져올 때 업데이트됩니다. origin 원격 저장소에서 최신 정보를 가져오겠습니다.

git fetch origin

Git 이 원격 저장소에서 객체를 가져오고 있음을 나타내는 출력을 볼 수 있습니다.

이제 git branch -r을 사용하여 원격 브랜치를 나열해 보겠습니다.

git branch -r

다음과 유사한 출력을 볼 수 있습니다.

  origin/HEAD -> origin/main
  origin/main

이 출력은 원격 추적 브랜치를 보여줍니다. origin/mainorigin 원격 저장소의 main 브랜치를 나타냅니다. origin/HEAD 항목은 원격 저장소에서 HEAD가 가리키는 브랜치를 나타내며, 일반적으로 기본 브랜치입니다.

git branch -r을 사용하면 fetch 또는 pull 후 정보가 로컬에 저장되므로 매번 원격 저장소에 연결할 필요 없이 구성된 원격 저장소에 어떤 브랜치가 있는지 빠르게 확인할 수 있습니다.

특정 원격 브랜치 확인

이전 단계에서는 git branch -r을 사용하여 모든 원격 추적 브랜치를 나열했습니다. 때로는 특정 브랜치가 원격 저장소에 존재하는지 구체적으로 확인해야 할 수 있습니다. git ls-remotegrep과 결합하거나 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 에서 로컬로 캐시된 정보를 사용합니다.

요약

이 랩에서는 Git 브랜치가 원격 저장소에 존재하는지 확인하는 방법을 배웠습니다. 이를 위해 두 가지 주요 방법을 살펴보았습니다.

먼저, URL 을 제공하여 복제할 필요 없이 원격 저장소의 참조 (브랜치 포함) 를 검사할 수 있는 git ls-remote 명령을 사용했습니다. 이를 통해 사용 가능한 참조와 해당 커밋 해시의 자세한 목록을 제공합니다. 둘째, 로컬 저장소에 이미 구성된 원격 저장소의 원격 브랜치를 나열하기 위해 git branch -r 명령을 사용하는 방법을 배웠습니다. 마지막으로, 이러한 방법을 사용하여 특정 원격 브랜치의 존재를 확인하는 연습을 했습니다.