Git 브랜치가 원격 브랜치를 추적하는지 확인하는 방법

GitBeginner
지금 연습하기

소개

이 랩에서는 로컬 Git 브랜치가 원격 브랜치를 추적하고 있는지 확인하는 방법을 배우게 됩니다. 두 가지 주요 방법을 살펴볼 것입니다: 추적 정보를 빠르게 확인하기 위해 git branch -vv 명령어를 사용하는 방법과 업스트림 설정을 확인하기 위해 git config 명령어를 사용하는 방법입니다.

실습 예제를 통해 이러한 명령어의 출력을 해석하고, 로컬 브랜치가 연결된 원격 브랜치가 있는지 (있는 경우) 식별하는 방법을 이해하게 될 것입니다. 또한, 추적하지 않는 브랜치 (non-tracking branches) 의 개념도 간략하게 다룰 것입니다.

git branch -vv 실행하여 추적 상태 확인

이 단계에서는 git branch -vv 명령어를 사용하여 로컬 브랜치의 추적 상태를 확인하는 방법을 배우겠습니다. 이 명령어는 로컬 브랜치가 연결된 원격 브랜치가 있는지 (있는 경우) 확인하는 데 매우 유용합니다.

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

cd ~/project/my-time-machine

이제 git branch -vv 명령어를 실행합니다:

git branch -vv

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

* master a1b2c3d [origin/master] Send a message to the future

이 출력을 자세히 살펴보겠습니다:

  • * master: 별표 (*) 는 master가 현재 활성 브랜치임을 나타냅니다.
  • a1b2c3d: 이것은 이 브랜치의 최신 커밋 해시의 축약 버전입니다.
  • [origin/master]: 이 부분은 로컬 master 브랜치가 origin이라는 이름의 원격 저장소의 master 브랜치를 추적하고 있음을 알려줍니다. 아직 원격을 추가하지 않았지만, Git 은 잠재적인 추적 정보를 보여주고 있습니다.
  • Send a message to the future: 이것은 이 브랜치의 최신 커밋의 커밋 메시지입니다.

브랜치 추적을 이해하는 것은 특히 다른 사람들과 협업하거나 GitHub 와 같은 플랫폼에 코드를 푸시하기 시작할 때 중요합니다. 로컬 브랜치가 원격 버전과 최신 상태인지, 그리고 변경 사항을 푸시할 때 어디로 갈지 알 수 있도록 도와줍니다.

다음 단계에서는 로컬 브랜치가 추적하는 원격 브랜치인 업스트림 브랜치를 설정하고 확인하는 방법을 살펴보겠습니다.

git config 를 사용하여 업스트림 확인

이전 단계에서 git branch -vv[origin/master]를 표시하는 것을 보았습니다. 이는 로컬 master 브랜치가 origin이라는 원격 저장소의 master 브랜치를 추적하도록 구성되어 있음을 나타냅니다. 아직 원격을 추가하지 않았지만, Git 에는 이러한 추적 관계를 제안하는 기본 구성이 있습니다.

git config 명령어를 사용하여 이 구성을 확인할 수 있습니다. 이 명령어를 사용하면 Git 의 구성 설정을 보고 수정할 수 있습니다.

여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.

이제 master 브랜치의 원격 설정을 확인해 보겠습니다:

git config branch.master.remote

이 명령어는 Git 에게 master 브랜치의 remote 설정 값을 요청합니다.

다음과 같은 출력을 볼 수 있습니다:

origin

이는 master 브랜치가 origin을 원격으로 사용하도록 구성되어 있음을 확인합니다.

다음으로, 로컬 master 브랜치가 추적하는 원격 브랜치 이름을 확인해 보겠습니다:

git config branch.master.merge

이 명령어는 Git 에게 master 브랜치의 merge 설정 값을 요청합니다. 이 설정은 로컬 브랜치에 병합할 원격 브랜치를 지정합니다.

다음과 같은 출력을 볼 수 있습니다:

refs/heads/master

이는 master 브랜치가 원격 저장소의 master 브랜치를 추적하도록 구성되어 있음을 확인합니다. refs/heads/mastermaster 브랜치의 전체 참조 이름입니다.

git config를 사용하는 것은 로컬 브랜치가 원격 저장소와 상호 작용하는 방식을 포함하여 Git 저장소의 세부 설정을 이해하고 관리하는 강력한 방법입니다.

추적하지 않는 브랜치 테스트

이전 단계에서 master 브랜치가 원격 브랜치를 추적하도록 구성된 방식을 살펴보았습니다. 이제 원격 브랜치를 추적하지 않는 새로운 로컬 브랜치를 만들고 git branch -vv가 해당 상태를 어떻게 보고하는지 살펴보겠습니다.

여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.

먼저, experiment라는 새 브랜치를 만들어 보겠습니다:

git branch experiment

이 명령어는 experiment라는 새 브랜치를 만들지만, 해당 브랜치로 전환하지는 않습니다.

이제 git branch -vv를 다시 실행하여 모든 로컬 브랜치의 상태를 확인해 보겠습니다:

git branch -vv

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

* master    a1b2c3d [origin/master] Send a message to the future
  experiment a1b2c3d Send a message to the future

experiment 브랜치의 출력과 master 브랜치의 출력의 차이점을 확인하십시오. experiment 브랜치는 커밋 해시 뒤에 [origin/...]을 표시하지 않습니다. 이는 experiment 브랜치가 현재 원격 브랜치를 추적하지 않는 로컬 브랜치임을 나타냅니다.

이는 원격 저장소에서 다른 사람과 공유하기 전에 실험이나 새로운 기능을 개발하기 위해 로컬에서 새 브랜치를 만들 때 흔히 발생하는 시나리오입니다.

git branch --set-upstream-to=<remote>/<remote-branch> <local-branch>를 사용하여 로컬 브랜치에 업스트림 브랜치를 명시적으로 설정할 수 있습니다. 그러나 지금은 모든 로컬 브랜치가 자동으로 원격 브랜치를 추적하는 것은 아니라는 점을 이해하는 것이 중요합니다.

이것으로 브랜치 추적 상태 확인에 대한 탐구를 마칩니다. git branch -vvgit config를 사용하여 로컬 브랜치가 원격 저장소와 상호 작용하도록 구성되는 방식을 이해하는 방법을 배웠습니다.

요약

이 랩에서는 Git 브랜치가 원격 브랜치를 추적하는지 확인하는 방법을 배웠습니다. git branch -vv 명령어를 사용하여 로컬 브랜치의 추적 상태를 확인하고, 추적되는 원격 브랜치와 저장소를 식별했습니다.

또한 git config 명령어를 사용하여 브랜치의 업스트림 구성을 확인하고, 로컬 브랜치가 추적하도록 설정된 원격 브랜치를 확인하는 방법을 살펴보았습니다. 마지막으로, 명시적인 업스트림 구성이 없는 브랜치를 Git 이 어떻게 처리하는지 이해하기 위해 추적하지 않는 브랜치의 동작을 테스트했습니다.