말로만 들으면 무슨 이야기인지 잘 이해가 되지 않을 수 있습니다..만!

저는 항상 git push를 할 때 git push origin this_branch 와 같은 식으로 해당 브랜치명을 작성해왔습니다.

 

그런데 어짜피 원격 저장소에도 같은 브랜치명으로 보낼텐데, 항상 뒤에 origin 브랜치명을 작성해야할까? 라는 생각이 들었습니다.

이걸 간단하게 git push로 처리할 수 있도록 만드는 방법을 간단하게 작성해보려고 합니다!

(혹시 틀린 부분이 있다면 가차없이 댓글로 채찍질 부탁드립니다!!!)

 

 

목차


    0. 브랜치명 생략 방법

    때는 부스트캠프 그룹프로젝트중.. 팀원이 git push로 간단하게 push 작업을 진행하길래 저도 써보려고 했는데 저는 바로 원격 저장소로 push가 되지 않았습니다.

     

    나도 저렇게 쓰고싶은데?? 싶긴 했는데, 귀찮아서(....) 적용을 하지 않고 있다가 그룹 프로젝트가 다 끝나가는 지금에 와서야 적용을 하게 되었군요..

     

     

    먼저 그냥 git push를 해봅시다.

    아래와 같은 오류가 뜨면서 원격 저장소의 이름과 브랜치명을 설정하라고 나옵니다.

     

    우리는 아무 설정도 하지 않았는데, origin으로 설정하라고 뜨는 이유는 기본적으로 원격 저장소의 이름이 origin이라고 저장되기 때문입니다.

     

    업스트림을 설정하라고!!!

     

    적용 방법은 정말 간단합니다. 아래 코드를 bash에 작성합니다.

    그리고 나서 git push를 하면? 뒤에 원격 저장소와 브랜치명을 작성하지 않아도 알아서 origin 브랜치명으로 push가 됩니다!

     

    git config --global push.default current

     

     

    이게 되는 이유는 push.default 설정을 해 주었기 때문입니다!

     

     

    git-config 문서에 따르면 push.default로 설정할 수 있는 옵션에는 여러 가지가 있습니다.

    • nothing : 명시적으로 어디로 보낼 지를 다 작성해야 합니다. (그냥 쓰면 푸쉬하지 않습니다.)
    • current : 원격 저장소에 같은 이름의 branch에 push합니다.
    • upstream : 현재 작업중인 branch를 지정해둔 원격 저장소의 branch로 push 합니다.
    • simple : 현재 작업중인 branch와 원격 저장소의 branch명이 같을 때만 push합니다. (기본 설정)
    • matching : 로컬과 원격 저장소의 브랜치명이 같은 모든 branch를 push합니다.

     

    또한 --global 옵션을 통해서 현재 로그인된 사용자의 전체 저장소에 적용이 됩니다. (생략하면 현재 저장소에만 적용됩니다!)

     

     

    마지막으로 이 방법을 사용하게 되면 upstream 브랜치를 따로 지정하지 않아도 되는 대신 로컬 브랜치와 리모트 브랜치는 서로 추적이 되지 않는 상태가 되기 때문에 git pull이 작동하지 않습니다. (git pull 하면 upstream을 설정하라고 오류가 뜹니다!!)

    이 때 git push -u를 사용해서 upstream 정보를 생성해주면 git pull이 정상적으로 작동하게 됩니다!

     


    1. 참고 자료

     

    git-config(1)

    git config [<file-option>] [type] [-z|--null] name [value [value_regex]] git config [<file-option>] [type] --add name value git config [<file-option>] [type] --replace-all name value [value_regex] git config [<file-option>] [type] [-z|--null] --get name [v

    schacon.github.io

     

    [팁] 항상 현재 브랜치로 푸쉬하게끔 설정하기

    간단한 설정 한 줄로 로컬 브랜치를 트래킹 브랜치(upstream)로 추가할 수 있습니다. [it-config 문서] 의하면

    velog.io

     

    [Git] push.default - 'simple' or 'matching'

    git을 이용해 리모트 저장소로 소스코드를 push 할 때 다음과 같은 경고가 뜨는 상황이 있다. $ git push warning: push.default is unset; its implicit value has changed in Git 2.0 from 'matching' to 'simpl..

    hbase.tistory.com

     

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

    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 mas..

    blog.aaronroh.org

     

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기