Git 설정 업스트림 분기

Stewart Nguyen 2022년8월23일
Git 설정 업스트림 분기

이 기사에서는 로컬 브랜치와 원격 브랜치 간의 관계를 설정하는 방법을 소개합니다.

Git은 이러한 종류의 관계를 설정하기 위해 set upstream을 호출합니다.

로컬 분기를 추적 분기라고 하고 추적하는 분기를 원격 분기를 업스트림 분기라고 합니다.

업스트림을 설정하는 목적은 git pushgit pull을 더 쉽게 만드는 것입니다.

feature/a-long-long-branch-for-feature-A와 같은 긴 분기 이름이 있다고 상상해 보십시오.

업스트림 브랜치를 설정하지 않고 명시적으로 브랜치 이름으로 git push를 실행해야 합니다.

예:

git push origin feature/a-long-long-branch-for-feature-A

더 짧고 업스트림 브랜치를 설정한 후 작업 중인 브랜치 이름을 제거할 수 있습니다.

깔끔하고 쉽게 git push를 실행하기만 하면 됩니다.

원격 분기가 아직 생성되지 않았을 때 업스트림을 설정하려면 git push 명령과 함께 --set-upstream-to 옵션을 사용하십시오.

git push --set-upstream-to origin <branch_name>

또는 더 짧은 버전,

git push -u origin <branch_name>
$ git push -u origin master
Enumerating objects: 17, done.
...
remote: Create a pull request for 'master' on GitHub by visiting:
...
To github.com:username/repo_name.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

원격 브랜치가 이미 존재할 때 설정하려면 아래 명령어를 사용하세요.

git branch --set-upstream-to origin/<branch_name>

또는,

git branch -u origin/<branch_name>

예를 들어,

$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.

업스트림 설정의 또 다른 이점은 로컬 분기와 원격 분기 간에 동기화되지 않은 커밋을 표시하는 것입니다.

$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
$ touch file.txt
$ git add file.txt && git commit -m 'Add file.txt'
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

업스트림 설정을 해제하려면 git branch --unset-upstream을 사용하세요. 그러면 git status에 추가 정보가 표시되지 않습니다.

$ git branch --unset-upstream
$ git status
On branch master
nothing to commit, working tree clean

관련 문장 - Git Remote