본문 바로가기
Front-end

Git branch의 push, --set-upstream 설정 생략하기

by 노아론 2020. 6. 25.

Git 커밋을 거친 뒤, 처음으로 push를 할 때면

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin master

이렇게 항상 upstream branch를 설정하라는 문구가 나온다

 

친절하게도 커맨드 설명이 나와서 copy&paste 를 하면 해결이 되지만

브랜치를 생성할 때마다 매번 저 문구를 붙여 넣는 작업을 거쳐야 하기는 너무 번거로울 것이다

 

이러한 작업을 git의 config 설정으로 생략해본다.

 

git config --global push.default current

위 커맨드와 같이 push의 기본 행동으로 current를 지정하면

현재의 브랜치와 동일한 이름의 브랜치에 push를 할 수 있다.

 

push.default로 설정할 수 있는 옵션들은 아래와 같다

  • nothing : 어느 것도 푸쉬하지 않는다

  • matching : (기본값) 로컬과 리모트의 이름이 동일한 모든 브랜치를 푸쉬한다

  • upstream : 현재의 브랜치를 업스트림 브랜치에 푸쉬한다

  • current : 현재의 브랜치를 같은 이름의 브랜치에 푸쉬한다

그러나, push.default current설정으로 작은 side effect가 발생하게 된다

 

우린 push 설정에 current 옵션을 줌으로써 upstream 브랜치를 지정하지 않아도 되었다

이는 로컬 브랜치와 리모트 브랜치 간의 추적이 설정되지 않았다는 것이다.

 

따라서 브랜치를 어디로 추적해야 할지 매칭 시키지 못하기에 git pull 명령어는 동작하지 않을 것이다.

 

이를 해결하기 위해선 리모트 브랜치에 동일한 이름으로 브랜치를 생성하고 추적을 설정해야 한다.

설명은 길었지만 간단하게 아래 커맨드를 통해서 해결할 수 있다.

git push -u

 

 

참고

git-scm Documentation

댓글