GitHub에서 생성 된 새로운 원격 지점 추적


183

github 프로젝트의 원격 마스터 분기를 추적하는 로컬 마스터 분기가 이미 있습니다. 이제 공동 작업자가 동일한 프로젝트에서 새 지점을 만들었으며 그에 따라 다음을 수행하려고합니다.

  1. 지역에 새로운 지점을 만들다
  2. 이 새 분기를 새로 만든 원격 분기를 추적하십시오.

어떻게 제대로해야합니까?


2
git checkout --track -b <local branch> <remote> / <tracked branch>도 작동합니다.
MLister

14
... 또는 그냥 git checkout -t <remote>/<whatever>. 하나에서 끝나는 원격 추적 브랜치가 있다면 <whatever>당신도 바로 할 수있는 git checkout <whatever>당신이 무슨 뜻인지와 자식 추측.
Mark Longair

답변:


251
git fetch
git branch --track branch-name origin/branch-name

첫 번째 명령은 로컬 저장소에 원격 지점이 있는지 확인합니다. 두 번째 명령은 원격 지점을 추적하는 로컬 지점을 만듭니다. 원격 이름은 origin이고 지점 이름은 이라고 가정합니다 branch-name.

--track 옵션은 원격 지사에 대해 기본적으로 활성화되어 있으며 생략 할 수 있습니다.


3
이렇게하면 경고가 나타납니다. refname 'branch-name'이 모호합니다.
Ultrasaurus

19
해당 지점 이름을 가진 원격 지점이 하나만 있으면 git checkout <branchname>git이 자동으로 원격 지점을 확인하고 추적 지점을 설정합니다. @Mark Longair가 위의 의견에서 stackoverflow.com/questions/11262703/… 을 반복해서 언급하고 싶습니다 .
Ryan Walls

내 원격 지점의 이름은 remotes/origin/develop? 그냥 그렇게해서는 안 origin/develop됩니까? 이것들이 동일합니까?
아렉 쿠스

2
내가해야 할 일을했을 git fetch --all그렇지 않으면 새 가지가 인출되지 않을 것,
mschrimpf

이클립스에서 이것을하는 방법? 내가 그 일을 마치면 cmd이클립스는 새로운 가지를 감지합니까?
Deckard

31

기존 지역 지점이없는 경우 다음과 같이 간단합니다.

git fetch
git checkout <remote-branch-name>

예를 들어 가져오고이라는 새로운 원격 추적 분기가있는 경우 다음을 origin/feature/Main_Page수행하십시오.

git checkout feature/Main_Page

이렇게하면 원격 지점과 이름이 같은 로컬 지점이 만들어져 해당 원격 지점을 추적합니다. 지점 이름이 같은 리모콘이 여러 개인 경우 덜 모호한 것을 사용할 수 있습니다.

git checkout -t <remote>/<remote-branch-name>

로컬 브랜치를 이미 만들고 삭제하지 않으려면 기존 Git 브랜치를 원격 브랜치에서 어떻게 추적합니까?를 참조하십시오. .


1
git checkout 1.5-branch( remotes/upstream/1.5-branch의 출력에 있음 git branch -a) 결과를 error: pathspec '1.5-branch' did not match any file(s) known to git.변경하면 git checkout upstream/1.5-branchHEAD가 분리되고 로컬 분기가 작성되지 않습니다. 나는이 부분의 대답이 단순히 잘못이라고 생각합니다. 이것은 git 2.4.3입니다
Piotr Dobrogost

첫 번째 명령은 다른 리모컨에서도 git 1.9.3에서 나를 위해 작동합니다. 이 동작이 변경되었을 수 있습니다. 두 번째 명령의 결과는 내가 기대하는 것입니다. -t가 없으면 원격에서 해당 특정 버전을 보는 것 이외의 작업을 수행하도록 지정하지 않습니다.
kotoole

1
@PiotrDobrogost와 동의합니다. "동일한 이름으로 로컬 지점을 만듭니다 ..."라는 말이 잘못되었다고 생각합니다. 무엇을 가져올 것입니다 (이 방법을 부를 때) 할 것은 만드는 것입니다 원격 추적 브랜치를 원격의 각 지점에 대해. 이는 지역 리포지토리의 지사를 의미합니다 <remote>/<branch>. 원격 추적 분기는 읽기 전용이며 마지막 가져 오기에서 해당 분기가 원격에 있었던 위치를 나타냅니다. checkout해당 분기 참조를 호출 하면 Piotr이 말한 것처럼 분리 된 HEAD 모드가됩니다. 가져 오기 위해 원격 브랜치를 지정하면 원치 않는 원격 추적 브랜치가 생성되지 않습니다.
scanny

2
한 번 더 명확하게하기 위해 : 나는 명령을 사용하는 것이 git checkout feature-branch좋습니다. git checkout origin/feature-branch 둘 다 지적했듯이 도움이되지 않는 분리 된 헤드 를 생성하는 명령 을 사용하는 것은 제안하지 않습니다 .
kotoole

훨씬 간단하고 요점. cygwin에서 git 2.8.3과 잘 작동합니다.
Felipe Alvarez

29

우선 원격 저장소를 가져와야합니다.

git fetch remoteName

새 브랜치를 만들고 원하는 원격 브랜치를 추적하도록 설정할 수있는 것보다 :

git checkout -b newLocalBranch remoteName/remoteBranch

최대 값으로 "git checkout -b"대신 "git branch --track"을 사용할 수도 있습니다.

git branch --track newLocalBranch remoteName/remoteBranch

checkout -b원격 지점을 시작점으로 사용하는 경우 실제로를 사용할 필요가 없습니다 --track.

5
또한 이 의견 에서 지적했듯이 방금 수행 git checkout <branchname>하고 동일한 이름을 가진 원격 분기가있는 경우 (을 수행 한 후 git fetch) 로컬 분기가 자동으로 원격 분기를 추적하도록 설정됩니다.

9

지점이 원격 지점이 아닌 경우 로컬 지점을 원격으로 직접 푸시 할 수 있습니다.

git checkout master
git push origin master

또는 개발 지점이있을 때

git checkout dev
git push origin dev

또는 원격 지점이 존재할 때

git branch dev -t origin/dev

원격 지점을 밀기위한 다른 포지 빌리티가 있습니다.


그런 다음 세 번째 옵션을 선택하십시오. 원격 브랜치가 존재하면 로컬 브랜치를 생성하고 원격 브랜치를 추적 할 수 있습니다.
René Höhle 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.