git push -u의 의미는 무엇입니까?


323

두 가지 버전의 자식이 있습니다. 1.6.2 버전에서는 옵션 git push이 없습니다 -u. 1.7.x 버전에서만 나타납니다.

문서에서는 -u변수와 관련이 있습니다.

branch.<name>.merge

에서 git config. 이 변수는 아래에 설명되어 있습니다.

Defines, together with branch.<name>.remote, the upstream branch 
for the given branch. It tells git fetch/git pull which branch to merge.

업스트림 브랜치 란 무엇입니까?


답변:


360

"업스트림"은 GitHub 리포지토리와 같은 다른 사람들이 가져올 주요 리포지토리를 나타냅니다. -u 옵션은 리포지토리를 중앙에 연결하여 업스트림을 자동으로 설정합니다. 그러면 앞으로 Git은 어디로 밀고 싶은지, 어디에서 끌어 올 것인지를 "알고"있으므로 인수를 사용 git pull하거나 사용 git push하지 않고 사용할 수 있습니다 . 이 기사 에서는이 개념을 약간 설명하고 설명합니다.


19
난 당신이에 연결 한 물품이 밖으로 지점 않는 것을 볼 수 있지만 잡았다의 그것의 무언가 때문에 나는 그것의 가치가 지적 생각과에 밀려 분기 git push 상류 지점 구성에 영향을받지 않습니다 당신이하지 않는 한 push.default세트를 에 tracking(또는 upstream자식의 이후 버전).
Mark Longair

나는 일식 egit이 왜 둘 다를 제공하는지 이해하지 못합니까?
HaveAGuess

23
@HaveAGuess 아마 Eclipse가 불행과 절망을 동시에 제공하는 것과 같은 이유로.
twiz

9

더 이상 최신 상태가 아닙니다!

Push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

1
그러나 -u지금 깃발은 무엇을 의미 합니까? GitHub은 여전히 ​​새로운 저장소를 만들 때이 플래그를 사용하도록 권장합니다.
Jean Paul

8
@JeanPaul--u 옵션은 다음을 수행합니다. 최신이거나 성공적으로 푸시 된 모든 브랜치에 대해 인수가없는 git-pull 및 기타 명령에서 사용하는 업스트림 (추적) 참조를 추가합니다. 따라서 -u 옵션을 사용하여 로컬 분기를 푸시하면이 로컬 분기는 자동으로 원격 분기와 연결되며 인수없이 git pull을 사용할 수 있습니다.
피터 파이퍼
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.