program story

추적 참조 란 무엇입니까?

inputbox 2020. 12. 2. 21:04
반응형

추적 참조 란 무엇입니까?


Git Extensions를 통해 새 브랜치를 원격 저장소로 푸시하면 다음과 같은 경고가 표시됩니다.

The branch {branch name} does not have a tracking reference. Do
you want to add a tracking reference for {branch name}?

추적 참조 란 무엇입니까? Google에서 추적 참조에 대한 몇 가지 언급 만 발견했으며 실제 정의는 없습니다.


기본 아이디어는 순전히 로컬 참조 (예 : 분기, 태그)가 있고 다른 리포지토리에서 발생하는 작업을 따르는 원격 추적 참조가 있다는 것입니다. Git은 탈 중앙화되어 있기 때문에 원격지에서 사용 된 것과 동일한 브랜치의 이름을 선택할 수 있습니다. Git을 사용하면이 작업을 수행 할 수 있지만 로컬 참조를 원격 참조에 연결하는 방법도 제공합니다.

예를 들어 다음을 고려하십시오.

% git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/maint
  remotes/origin/master
  remotes/origin/next
  remotes/origin/pu
  remotes/origin/todo

여기에 origin호출 nexttodo.

% git checkout -t remotes/origin/next
Branch next set up to track remote branch next from origin.
Switched to a new branch 'next'
% git branch todo    

이제 next동일한 이름의 원격 분기 를 추적하는 로컬 분기 todoremotes/origin/todo.


로컬 git 브랜치는 원격 브랜치를 추적 할 수 있습니다. 즉, git push 및 git pull 명령이 기본적으로 추적 된 브랜치에서 커밋을 푸시하고 가져 오는 것을 인식합니다. 또한 git status는 현재 로컬 브랜치와 추적중인 원격 브랜치 간의 상태를 알려줍니다. git 저장소를 복제하면 git은 원격 마스터 브랜치를 추적하기 위해 로컬 마스터 브랜치에 대한 추적 참조를 추가합니다. 새로운 원격 브랜치에서 체크 아웃 할 때 git은 생성 된 로컬 브랜치에 추적 참조를 추가하여 체크 아웃 한 원격 브랜치를 추적합니다.

그러나 새 브랜치를 로컬로 생성 한 다음 원격 저장소로 푸시하는 경우 로컬 브랜치가 새 원격 브랜치를 추적하기 시작하도록하려면 명시 적으로 git에 알려야합니다. 로컬 브랜치를 원격 저장소로 푸시 할 때 -u또는 --set-upstream옵션 을 사용하여 수행합니다 git push -u origin my-new-branch..

git branch -vv다음 명령을 사용하여 로컬 브랜치가 추적하는 원격 브랜치를 확인할 수 있습니다 (있는 경우). 다음은 출력의 작은 예입니다.

  b1     560eb64 Added file.txt
  b2     560eb64 [origin/b2] Added file.txt
  b3     b638c18 [origin/r1: ahead 1] Added file3.txt
* master 560eb64 [origin/master] Added file.txt

이 경우 우리는 지역의 지점을 가지고 master, b1, b2b3. master분기라는 원격 브랜치를 추적 master, b1분기 원격 지점을 추적하지의 b2분기라는 원격 브랜치를 추적 b2하고, b3지사라는 원격 브랜치를 추적한다 r1. git branch -vv추적 된 분기와 관련된 분기의 상태도 표시합니다. 여기서 분기 b3는 추적 된 원격 분기보다 먼저 커밋되고 다른 분기는 각각의 원격 추적 분기로 최신 상태입니다.

따라서 로컬 브랜치를 생성하고 원격 리포지토리로 푸시하는 경우 브랜치에 대한 추적 참조를 추가 하시겠습니까? 일반적으로 새 로컬 브랜치를 원격 저장소로 푸시 할 때 기능에 대해 다른 개발자와 협업하기 위해이를 수행합니다. 로컬 브랜치에 추적 참조를 추가하면 다른 사람들이 브랜치에 적용한 변경 사항을 편리하게 가져올 수 있으므로 대부분의 경우 추적 참조를 추가하고 싶습니다.


Nick Quaranto의 훌륭한 블로그 git ready 에는 원격 추적 분기를 설명하는 게시물이 있습니다 .

원격 추적 분기에는 몇 가지 다른 목적이 있습니다.

  • 원격에있는 것과 비교하여 로컬에서 작업중인 것을 연결하는 데 사용됩니다.

  • 그들은 git pull 또는 git fetch를 사용할 때 변경 사항을 가져올 원격 분기를 자동으로 인식합니다.

  • 더 좋은 점은 git status가 브랜치의 원격 버전 앞에있는 커밋 수를 인식한다는 것입니다.


예, 추가하고 싶을 것입니다. 콘솔에서이 작업을 수행하십시오 : git branch --set-upstream-to origin / master

참고 URL : https://stackoverflow.com/questions/15375192/what-is-a-tracking-reference

반응형