짧은 답변
실제로 명시적이고 -u필요할 때 옵션을 사용하고 싶지만 전체를 입력하고 싶지 않은 경우 :
git push -u origin foo
그런 다음 다음 별칭을 사용할 수 있습니다.
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
다음을 입력하면됩니다.
git push-u
긴 대답
일반적으로 -u(의 약어)에 대한 필요성 --set-upstream은 방금 새 로컬 브랜치를 생성하고 커밋하고이를 업스트림으로 푸시하려는 경우입니다. 원격 저장소에는 아직 새 브랜치가 없으므로 커밋을 푸시하기 전에 git에게 원격 브랜치를 만들고 추적하도록 지시해야합니다. 이것은 브랜치에 대한 첫 번째 푸시에만 필요합니다. 다음은 일반적인 시나리오입니다.
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push -u origin foo # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
개인적으로 저는 git push -u원격 브랜치를 만들 때 명시 적이 필요하다는 점을 좋아합니다 . 완전히 새로운 브랜치를 세상에 공유하는 매우 중요한 작업입니다.
그러나 나는 명시 적으로 작성해야하는 것이 싫다 git push -u origin foo. 입력하는 것이 고통 스러울뿐만 아니라 더 중요한 것은 오류가 발생하기 쉽다는 것입니다! 지점 이름을 입력 할 때 실수하기 쉽고 새 원격 지점은 로컬 지점과 동일한 이름을 갖지 않습니다! 대부분의 경우 실제로 업스트림 저장소가origin 이고 업스트림 분기는 로컬 분기와 동일한 이름을 갖기 .
따라서 Mark가 제공 한.gitconfig 우수한 답변 의 하위 집합 인 my에서 다음 별칭을 사용하고 있습니다 .
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
이제 다음을 수행 할 수 있습니다. 이는 여전히 명시 적이지만 오류가 덜 발생합니다.
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push-u # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
push.default및branch.<name>.merge옵션 을 사용할 수 있는지 확인 했습니까 ?