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