Git Checkout 원격 브랜치 쉽게 실행하기 [단계별]

팀에 신입으로 들어와서 원격 브랜치를 Git 코드 저장소에서 확인하라는 지시를 받았습니까? 대기업이건 소규모 팀이건 원격 Git 브랜치를 잘 다루는 것은 원활한 코드 협업을 위한 필수 요소입니다. 이 안내서에서는 원격 Git 저장소에서 코드를 가져오는 과정에 대해 알아보고 ‘git checkout remote branch’ 명령에 초점을 맞춥니다.

Not a reader? Explore this related video tutorial!

Not seeing the video? Ensure your ad blocker is disabled.

전제 조건

  • 이 튜토리얼은 Windows 10에서 2.30 버전의 Git SCM(소스 코드 관리)을 사용하며, Git이 지원하는 모든 OS와 호환됩니다.

Windows용 다른 설치 방법으로는 ChocolateyGit4Win이 있습니다.

원격 브랜치 이해

Git 저장소는 브랜치 내에서 관련 커밋의 일련의 기록을 기록하고 추적합니다. 기본적으로 커밋은 현재 활성화된 브랜치에 속하며, 일반적으로 ‘main’ 또는 ‘master’라고 불립니다.

A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.

Git branch 명령을 사용하여 사용 가능한 브랜치를 발견하십시오. 별표(*)로 표시된 브랜치가 활성화된 브랜치입니다. 아래 나열된 브랜치는 아직 가져오지 않은 원격 브랜치가 없으므로 완전히 로컬입니다.

git branch
List of local branches shown from the git branch command.

Git Checkout Remote Branch를 마스터하기

로컬 Git 저장소가 있고 다른 개발자와 협업해야 할 필요가 발생하는 경우가 있습니다. 이때 Git checkout 명령이 필요하며, 이를 통해 원격 Git 저장소의 원격 브랜치에서 최신 커밋을 가져올 수 있습니다.

원격 브랜치가 구성되면 Git은 로컬 전용 브랜치가 아닌 원격 브랜치를 미러링합니다. 아래는 git checkout remote <branch> 명령의 예입니다.

git checkout remote main

원격 Git 저장소 복제하기

이제 기존 저장소를 활용할 수 있으므로 본격적으로 진행해 봅시다. 아래 단계를 따라 원격 저장소를 로컬 머신의 로컬 폴더로 복제합니다.

1. 인증서 및 방화벽 문제를 우회하기 위해 SSH보다는 HTTPS URL을 통해 원격 저장소를 복제하는 것이 더 간편합니다. GitHub의 저장소로 이동하십시오.

  • Code 버튼을 클릭하고 HTTPS를 선택하십시오.
  • 링크 옆의 클립 보드 아이콘을 클릭하여 URL을 클립 보드에 복사하십시오.
Locating the HTTPS clone URL in GitHub.

2. 클립보드에 HTTPS URL을 복사한 후, Windows 명령 프롬프트 또는 Windows Terminal과 같은 기본 CLI(Command-Line Interface)를 엽니다.

3. 클론된 저장소가 위치할 폴더로 이동합니다. 이 튜토리얼에서는 홈 디렉토리의 git 폴더가 스크린샷에 나와 있는 대로 사용됩니다. 다음 명령을 실행하여 저장소를 클론합니다. 저장소를 복제하기 위해, 원격 저장소를 포함하는 하위 폴더가 생성됩니다.

# GitHub git clone https://github.com/Adam-the-Automator/git-checkout-remote-branch
Cloning a remote repository to the local machine.

4. 다음 명령을 사용하여 클론된 저장소로 이동합니다. cd git-checkout-remote-branch.

다음 상태 명령을 실행하여 저장소가 성공적으로 클론되었는지 확인합니다. Git status 명령은 로컬 브랜치와 원격 브랜치 간의 차이를 나타내어 브랜치가 연결되어 있는지 및 업데이트되었는지 확인하는 데 도움이 됩니다! 기본 Git 원격은 origin이라고 하며, main 원격 브랜치에 접두사가 붙습니다. git status

git status
Checking a repositories status.

대부분의 현대 Git 소프트웨어에서 main은 기본 주 브랜치입니다. 이전 버전의 응용 프로그램에서는 기본 브랜치 이름으로 master를 사용할 수 있지만, 두 이름은 기능적으로 동일합니다. 이 튜토리얼에서는 main, RemoteBranch, SomeBranch, AnotherBranch라는 브랜치를 사용합니다.

Git 원격이란 무엇이며 원격 브랜치를 어떻게 추적합니까?

저장소를 복제하면 원격 소스에 대한 참조가 자동으로 생성되는데, 이를 원격이라고 합니다.새로운 커밋을 확인하거나 새로운 변경 사항을 원격 저장소에 푸시하는 데 사용됩니다.

A Git repository itself may have multiple remotes, but a branch can only reference a single remote.

원격 브랜치를 추적하면 로컬 브랜치와의 관계가 설정됩니다. 이 관계를 통해 원격 브랜치에서 로컬 브랜치로 커밋을 손쉽게 푸시하거나 풀 수 있습니다. 또한 추적되는 브랜치는 로컬 브랜치가 원격 브랜치보다 얼마나 앞서거나 뒤쳐져 있는지를 결정합니다.

Git 저장소의 원격 목록

먼저 작업 중인 저장소에 Git 원격이 있는지 확인하세요. 이를 위해 다음과 같이 git remote 명령을 사용하여 저장소의 Git 원격을 확인합니다. 이 예에서는 originremote2라는 두 개의 원격이 표시됩니다.

git remote
Viewing a repositories two configured remotes.

추가로 추적되는 두 원격 저장소는 originremote2로, 여기서는 원격이 다를 수 있습니다.

설정된 원격지에 대한 자세한 정보를 얻으려면 v 스위치를 추가하여 전체 Git 원격지 URI를 표시하세요.

git remote -v
Viewing verbose details about repo remotes.

fetchpush를 위한 별도의 URI가 있는지 궁금할 수 있습니다. 일부 Git 워크플로는 변경 사항을 보낼 위치와는 다른 URI에서 저장소의 업데이트를 확인할 수 있게 합니다. 이를 삼각형 워크플로라고 합니다.

사용 가능한 원격 브랜치 보기

리포지토리의 사용 가능한 모든 브랜치(로컬 및 원격)를 branch 명령어로 표시하세요. 원격 브랜치도 표시하려면 아래와 같이 all 스위치를 추가하세요.

git branch --all

아래 이미지에서 이 튜토리얼에서 사용된 원격 저장소 origin이 예상대로 표시됩니다. 그러나 이 이미지는 Remote2라는 이름의 원격 저장소의 모든 브랜치를 생략했습니다.

Viewing all known branches in a repo (including remotes).

원격지의 브랜치가 목록에 표시되지 않으면 다음 섹션에서 설명하는대로 사용 가능한 원격 브랜치 목록을 업데이트해야 합니다.

사용 가능한 원격 브랜치 업데이트

때로는 원격 저장소가 브랜치를 추가하거나 변경할 수 있습니다. 최신 브랜치로 작업하는 것이 중요하므로 가장 최신의 브랜치와 작업하려면 git fetch 명령어를 실행해야 합니다.

# fetch 명령은 원격 저장소에 연결하여 모든 사용 가능한 브랜치 목록을 검색합니다.
git fetch

# git fetch 명령을 실행한 후 현재 추적 중인 브랜치 목록을 확인하여 원격 브랜치가 이제 보이는지 확인합니다.
git branch --all

아래에서 remotes/origin/RemoteBranch 브랜치는 이제 git fetch 명령을 실행한 후 사용 가능한 원격 브랜치 목록에 표시됩니다.

Using git fetch to update the list of available remote branches.

fetch 명령은 현재 브랜치에서 추적 중인 원격에서만 업데이트를 확인합니다. 저장소의 모든 원격에서 추적 상태에 관계없이 업데이트를 확인하려면 all 매개변수를 추가하십시오.

git fetch --all
# 로컬 Git 저장소에서 사용 가능한 브랜치 목록 표시
git branch --all
# remote2에서 사용 가능한 브랜치 가져오기
git fetch Remote2
# remote2 브랜치, main이 이제 사용 가능한지 확인
git branch --all
Fetching main from remote2 with the git fetch command.

어떤 시점에서라도 git fetch로 원격 업데이트를 확인하거나, git pull, 또는 git push를 사용할 때 Git은 커밋을 원격 브랜치와 비교합니다. 로컬 브랜치는 Git 원격 브랜치를 추적할 수 있습니다. 또한, 여러 로컬 브랜치가 동일한 원격 브랜치를 추적하도록 설정할 수 있습니다.

각 브랜치의 원격 추적 보기

추적되는 원격 브랜치를 해당 로컬 브랜치와 함께 보려면 명령어 git branchvv 매개변수를 사용하세요. 명령 결과는 아래와 같은 형식의 원격 및 브랜치 목록을 표시합니다: [<remote>/<branch>]

git branch -vv
Listing remote tracking of all local branches.

브랜치의 원격 추적 변경

로컬 브랜치를 다른 원격 브랜치를 추적하도록 변경해야 할 수 있습니다. 현재 브랜치를 특정 원격 브랜치로 설정하려면 아래와 같이 u 매개변수를 사용하세요.

git branch -u Remote2/main
Setting what remote to track for the current branch.

Git 원격 브랜치 확인하기

원격 Git 리포지토리에서 새로운 브랜치가 생성되면 git checkout remote branch 작업을 수행해야 할 수 있습니다. 원격 리포지토리 브랜치를 확인하는 작업은 checkout 명령어를 통해 실행됩니다.

다음 조건이 충족되면 Git은 자동으로 올바른 원격지를 결정하고 원격 브랜치의 로컬 사본을 다운로드하여 로컬 사본을 원격 브랜치를 추적하도록 설정합니다. 다음 조건이 충족되지 않았는지는 git branch --all 명령의 결과를 통해 확인하십시오.

  • A local branch with the same name does not already exist.
  • 동일한 원격 브랜치 이름을 사용하는 여러 원격지가 존재하지 않습니다.

git checkout 원격 브랜치 작업을 수행하려면 아래에서 볼 수 있는 것처럼 git checkout 명령을 사용하고 원격 브랜치 이름을 입력하십시오.

git checkout RemoteBranch
Creating a local branch from a remote branch with git checkout.

로컬 저장소에 이미 동일한 이름의 로컬 브랜치가 있는 경우, 원격 브랜치를 체크아웃하기 전에 대체 로컬 브랜치 이름을 지정하기 위해 b 매개변수를 추가하십시오.

git checkout -b AnotherBranch origin/RemoteBranch
Creating a local copy of a remote branch with an alternate local branch name.

로컬 저장소에 동일한 브랜치 이름을 가진 여러 원격지가 있는 경우, 로컬 커밋을 추적할 원격지와 브랜치를 지정하십시오.

git checkout --track origin/RemoteBranch
Creating a local copy of a remote branch with tracking enabled.

Git의 미래 버전에서는 브랜치를 변경하고 생성하기 위해 git switch 명령을 사용하는 것을 선호할 수 있습니다. Git switch 명령은 브랜치 전용이며 Git checkout 명령에는 다양한 기능이 있습니다. 자세히 알아보려면 Irshad S.가 그 이유에 대해 잘 설명한 입문서를 읽어보세요.

로컬 브랜치를 원격지로 푸시하기

대응하는 원격 브랜치 없이 로컬 브랜치를 생성한 후, git push 명령을 사용하여 브랜치를 원격으로 전송할 수 있습니다. 원하는 원격에 새로운 브랜치를 만드는 가장 간단한 방법은 u 매개변수를 사용하는 것입니다.

이전에 사용한 대로 u 매개변수는 리포지토리 이름과 소스 브랜치의 인수를 필요로 합니다. 소스 브랜치 이름으로 HEAD만 지정하면, Git은 현재 로컬 브랜치 이름을 원격의 이름으로 사용하도록 이해합니다. 이 경우에는 NewBranch입니다.

# NewBranch로 변경하고 전환
git checkout -b NewBranch
# origin 원격에 NewBranch 생성
git push -u origin HEAD
# 원격에 브랜치가 존재하는지 확인
git branch -vv
Pushing a local branch to an upstream remote named origin with the same name as local.

HEAD는 현재 브랜치를 의미하는 단축어입니다. HEAD 대신 다른 브랜치 이름을 사용하여 원격에 푸시하고 추적을 설정할 수 있습니다.

가끔 현재 로컬 브랜치의 이름이 원격 브랜치의 이름과 일치하지 않을 수 있습니다. 다른 이름을 사용하려면 소스 뒤에 콜론으로 구분하여 원하는 브랜치 이름을 지정하면 됩니다. 아래 예시를 참고하세요.

# 현재 브랜치를 AnotherBranch로 원격의 origin에 생성
git push -u origin HEAD:AnotherBranch
# 로컬 NewBranch가 원격의 AnotherBranch로 존재하는지 확인
git branch -vv
Pushing a local branch to an upstream remote named origin with an alternate remote branch name.

다음 단계 및 추가 Git 리소스

Git 핵심 내용, 원격 관리, git checkout remote branch 수행을 검토한 후, 미래의 답답함을 피하는 데 도움이 될 풍부한 지식을 갖추게 되었습니다. Git에서 원격 브랜치를 checkout하는 단계와 공유된 최상의 관행은 앞으로 소중한 자원으로 기능할 것입니다.

Git 저장소를 관리하는 다른 측면에 더 깊이 파고들고 싶다면, 다음 자료를 강력히 추천합니다:

  • A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
  • Git switch: 브랜치 처리에 특화된 명령으로, 다목적의 Git checkout과는 달리입니다.

Source:
https://adamtheautomator.com/git-checkout-remote-branch/