2016-11-15 2 views
0

Github-Help: Syncing a Fork의 설명서에는 내 GitHub 포크를 업스트림 저장소와 동기화하여 유지하는 세 가지 명령이 나와 있습니다.업스트림과 포크 동기화 : git fetch + git checkout + git merge vs. git checkout + git pull

git fetch upstream 
git checkout master 
git merge upstream/master 

위의 세 명령 대신 다음 두 명령을 사용할 수 있습니까?

git checkout master 
git pull upstream/master 

두 명령 세트가 동일하거나 차이가 있습니까?

+0

$ git pull upstream/master fatal: 'upstream/master' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 
(http://stackoverflow.com/ques 14894768/in-git-how-is-fetch-with-rebase와는 다른 병합과 병합하기) –

+0

'git pull' ='git fetch' +'git merge', 적어도 일반적으로 –

+0

FYI :'git pull upstream/master'는 잘못되었습니다. 세 번째 단어 ('upstream/master')는 * remote *의 이름이어야하며,'upstream/master'는 * 원격 추적 지점 *. 자식은 불행하게도 매우 다른 단어를 사용한다. (관련이 있지만) 단어 * 브랜치 *는 적어도 두 가지 의미를 가지고있다. * remote *라는 단어 자체는 하나의 의미를 가지며 * remote-tracking branch *라는 문구는 또 다른 의미를 갖는다. . – torek

답변

0

이러한 명령 세트는 동일하지 않습니다.

git pull 

이 두 명령으로 분할 경우 : Github에서 도움말 페이지가 왜 자식 병합 추적 참조를 필요로하면서,

git fetch 
git merge 
이 문제가

는, 그 자식이 가져

원격 참조를 필요로,이는 다음과 같습니다

git fetch upstream 

하지만

git merge upstream/master 
있다

merge 명령은 upstream/master 분기를 가져 와서 현재 체크 아웃 된 분기 (이 경우 'master')로 병합합니다. 그러나 명령이 지점에서 작동하지 않습니다 가져 오기, 그것은 원격 필요하므로 당신이하려고하면 인출에 실패하는

git fetch upstream/master 
git merge upstream/master 

:

git pull upstream/master 

힘내으로이 분할

의 사용 가능한 복제 [자식에서 어떻게 끌어 다른 페치 방법은 리베이스 다른 병합입니까?]
+0

** 참고 **'git pull upstream/master'는 적어도 한 번만'git fetch upstream "명령을 실행하면 작동합니다 :'upstream/master'는 원격 서버의 복사본이 아니라 원격 브랜치의 로컬 복사본을 참조합니다. –

+0

@FabienBouleau 그건 내 시스템에 맞지 않아. 이미 존재하는 경우에도 '업스트림/마스터'를 사용하여 페치 및 풀 모두 실패합니다. 가져 오기에는 분기 참조가 아닌 원격 참조가 필요합니다.아마도 "upstream/master"라는 이름을 "업스트림"과 같은 URL/폴더 또는 다른 설정 변경과 함께 리모컨으로 추가했지만 기본적으로는 아니지만 적어도 업스트림이 보조 리모컨 인 경우 (즉, 원점이 추가 된 경우) 먼저). – LightCC

+0

저의 경우,'upstream/master' 표기법이 잘못되었습니다. 'git pull upstream master '또는'git fetch upstream master'여야합니다. 원격 저장소를 처음 다운로드 할 때는'master '가없는'git fetch upstream'이어야합니다. 그렇지 않으면 원격 추적 분기 정보가 설정되지 않습니다 (FETCH_HEAD 만). 원격 추적 브랜치가 존재하면 그것을 참조하기 위해서'upstream/master' 만 사용하십시오. –