누군가가 git에 적용되는 “추적 지점”을 설명 할 수 있습니까?
git-scm.com 의 정의는 다음과 같습니다 .
Git의 ‘추적 지점’은 원격 지점에 연결된 로컬 지점입니다. 해당 분기를 밀고 당기면 연결된 분기에 자동으로 밀고 당깁니다.
항상 동일한 업스트림 분기에서 새 분기로 가져오고 “git pull”을 명시 적으로 사용하지 않으려면이 옵션을 사용하십시오.
불행히도 git에 익숙하지 않고 SVN에서 나온 그 정의는 전혀 의미가 없습니다.
나는 ” Git에 대한 실용 가이드 “(좋은 책, 그건 그렇고)를 읽고 있는데, 그들은 가지를 추적하는 것이 좋은 것이며 첫 번째 리모컨 (이 경우에는 출처)을 만든 후에는 마스터 브랜치를 추적 브랜치로 설정하지만 불행히도 추적 브랜치가 좋은 이유 또는 마스터 브랜치를 오리진 저장소의 추적 브랜치로 설정하여 얻는 이점 은 다루지 않습니다 .
누군가 제게 계몽 할 수 있습니까 (영어)?
답변
추적 지점
원격 지점에서 로컬 지점을 체크 아웃하면 자동으로 추적 지점이 생성됩니다. 추적 분기는 원격 분기와 직접적인 관계가있는 로컬 분기입니다. 추적 지점 및 유형 인 git push
경우 Git은 어떤 서버 및 지점을 푸시할지 자동으로 인식합니다. 또한 git pull
이러한 분기 중 하나 에서 실행 하면 모든 원격 참조를 가져온 다음 해당 원격 분기에 자동으로 병합됩니다.
리포지토리를 복제하면 일반적으로 원점 / 마스터를 추적하는 마스터 분기가 자동으로 생성됩니다. 의는 이유입니다 git push
및 git pull
다른 인수와 함께 상자 밖으로 작동합니다. 그러나 원할 경우 다른 분기 지점 (원점의 분기를 추적하지 않고 마스터 분기를 추적하지 않는)을 설정할 수 있습니다. 간단한 사례는 방금 본 예제 인 running git checkout -b [branch] [remotename]/[branch]
입니다. Git 버전 1.6.2 이상을 사용하는 경우 --track
속기 를 사용할 수도 있습니다 .
$ git checkout --track origin/serverfix
Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "serverfix"
원격 브랜치와 다른 이름으로 로컬 브랜치를 설정하려면 다른 로컬 브랜치 이름을 가진 첫 번째 버전을 쉽게 사용할 수 있습니다.
$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "sf"
이제 현지 지점 sf
이 자동으로로 이동 origin/serverfix
합니다.
보너스 : 추가 git status
정보
추적 지점을 사용하면 추적 지점 git status
뒤에 얼마나 멀리 있는지 알 수 있습니다. 아직 변경 사항을 적용하지 않았다는 사실을 기억하는 데 유용합니다! 다음과 같이 보입니다 :
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
또는
$ git status
On branch dev
Your branch and 'origin/dev' have diverged,
and have 3 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
답변
답변
추적 지점은 원격 지점과 직접적인 관계가있는 로컬 지점입니다.
정확히. “질문 에 어려움을 겪고있다git-fetch
“라는 SO 질문 에는 다음이 포함됩니다.
로컬 추적 분기 에는 이러한 개념이 없으며 원격 추적 분기 만 있습니다.
그래서origin/master
원격 추적 지점입니다master
에서origin
REPO.
그러나 실제로 한 번 당신은 설정 상류 지점의 관계 사이를 :
- 같은 지방 지점
master
- 같은 원격 추적 지점
origin/master
그런 다음 로컬 추적 분기master
로 간주 할 수 있습니다 . 원격 추적 분기 를 추적 하여 업스트림 리포지토리 의 마스터 분기를 추적합니다 . origin/master
origin
답변
추적 지점을 추가하여 새 지점으로 가져올 수있는 방법은 다음과 같습니다.
git branch --set-upstream-to origin/Development new-branch