개발/개발 팁

Github autoSetupRemote 설정

용꿀 2025. 1. 17. 00:48

Github origin에 새로 판 브랜치를 push 하려고 하면, 아래와 같은 에러 메시지와 함께 원하는 대로 push가 안 되는 경우가 있다.

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

    git push --set-upstream origin test-branch

To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.

자세하게 에러 메시지를 읽어보면, test-branch가 upstream branch를 가지고 있지 않으니 push를 하려면 remote 등록을 해야 한다라는 말이다. 그래서 단순히 나와있는 명령어대로 git push --set-upstream origin test-branch를 입력하면, 이후에는 에러메시지 없이 정상적으로 push가 된다.

 

하지만, 해당 명령어를 사용한 해결법은 새로운 브랜치로 check-out해서 작업을 push 할 때마다 remote 등록을 해줘야 한다는 문제가 있다. 그렇기에 에러 메시지 마지막 부분에 적혀있는 내용을 읽어볼 필요가 있다. 이에 따르면 upstream을 tracking 할 필요 없이 자동적으로 이루어지게 하려면, git help config의 push.autoSetupRemote를 확인하라고 한다.

확인해 보면 길게 설명이 되어있긴 하지만, 중요한 부분만 확인해 보면 push.autoSetupRemote를 true로 설정하면 default push에 자동적으로 --set-upstream이 설정된 것처럼 처리된다는 것이다. 즉, push.autoSetupRemote를 true로 설정하기만 하면 문제가 해결된다는 것이다.

 

git config --add 명령어를 통해 git config를 추가할 수 있고, 결론적으로 아래의 명령어를 통해 이후에 어떤 브랜치에서도 push를 진행하면 자동적으로 remote에 연결되게 설정할 수 있다.

git config --global --add push.autoSetupRemote true
--global 옵션은 설정할 config가 현재 프로젝트에만 적용되게 할 것인지, git 전체에 global로 적용되게 할 것인지 결정하는 옵션이다.
만약, 앞으로 진행될 모든 git 사용에서 해당 옵션을 적용하고 싶다면, --global 옵션을 추가하면 된다.

 

※ 참고로 Git의 버전이 2.37 이상인 경우에만 가능하다. 버전이 낮다면 업데이트해주시길...