Pro git이라는 책에서 브랜치를 소개할 때 업스트림 브랜치의 개념이 언급되어 있습니다.
원격 추적 분기에서 로컬 분기를 체크아웃하면 자동으로 "추적 분기"("업스트림 분기"라고도 함)라는 분기가 생성됩니다.
여기서 언급된 업스트림 브랜치는 원격 브랜치에서 체크아웃된 로컬 브랜치를 의미함을 알 수 있습니다.
그러나 이 책의 뒷부분에서 "업스트림 바로가기"가 언급될 때 이 업스트림 브랜치는 local브랜치를 참조하지 않습니다.
대신 git merge @{u}를 사용할 수 있습니다.추적 분기를 설정한 후 @{upstream} 또는 @{u} 바로가기를 통해 참조할 수 있습니다. 따라서 master 브랜치에 있고 원본/마스터를 추적하는 경우 원하는 경우 git merge Origin/master
git을 사용하여 원격 창고로 푸시할 때 업스트림 분기 개념을 자주 접하게 됩니다. 예를 들어 처음으로 원격으로 푸시할 때 매개변수를 추가하지 않습니다.
으아악그러면 git은 즉시 업스트림 브랜치를 설정하라는 메시지를 표시합니다.
치명적: 현재 브랜치 마스터에는 해당 업스트림 브랜치가 없습니다.
현재 분기를 푸시하고 원격 업스트림으로 추적을 설정하려면
를 사용하세요.git push --set-upstream 오리진 마스터
여기서 upstream 브랜치는 remote 브랜치를 가리키는 것 같습니다.
그러면 "업스트림 브랜치"가 정확히 무엇인지에 대한 질문이 생깁니다. "Pro git"이라는 책은 정확한 개념을 제시하지 않으며, 인터넷 상에서도 업스트림 브랜치는 상대적인 개념일 뿐이라고 합니다.
仅有的幸福2017-06-26 10:51:32
간단히 말하면 upstream은 로컬 브랜치에 해당하는 원격 브랜치입니다. pull이나 fetch를 할 때 원격 브랜치를 지정하지 않으면 업스트림 브랜치가 사용됩니다.
typecho2017-06-26 10:51:32
안녕하세요. 저는 Git 책을 한 번도 읽은 적이 없지만 오랜 연습을 통해 배운 Git 운영에 매우 능숙하다고 감히 말씀드립니다. 어쩌면 나는 당신의 혼란을 이해할 수 있습니다!
우선 중앙창고 개념인 기존 SVN에는 두뇌가 머물 수 없습니다! 우선 Git에는 중앙 저장소가 없으므로 로컬 코드 중 어느 부분을 원격 코드에 제출해야 하는지에 대한 질문이 생깁니다. git branch --set-upstream branch
이 지점은 원격 지점입니다. 기존 지점을 설정하여 원격 지점을 추적하세요. 원격 추적 브랜치를 설정한 후에는 일반적으로 간단하게 명령을 입력할 수 있습니다: git pull; git psuh;
예를 들어 처음으로 리모컨을 푸시할 때 어떤 매개변수도 추가하지 않았습니다:
git push
그런 다음 git 업스트림 브랜치를 설정하라는 메시지가 즉시 표시됩니다.
그러면 기본적으로 git push Origin master가 필요하며 현재 원격 브랜치가 메인 브랜치입니다.
代言2017-06-26 10:51:32
일반적인 사용법에 따르면 업스트림 브랜치는 원격 라이브러리의 브랜치를 의미합니다. 이 라이브러리는 github의 계정일 수도 있고 현재 설정된 서버(로컬 포함)의 디렉터리일 수도 있습니다. 분기는 다른 라이브러리의 분기에 연결되므로 직접 수행하는 대신 코드 세트를 함께 수정할 수 있습니다