원격 Git 저장소와 동기화하는 방법은 무엇입니까?


94

나는 github에서 프로젝트를 포크하고 지금까지 몇 가지를 변경했습니다.

그 동안 내가 포크 한 저장소가 변경되었으므로 해당 변경 사항을 저장소로 가져오고 싶습니다. 어떻게하나요?

답변:


77

일반적 git pull으로 충분하지만 어떤 레이아웃을 선택했는지 (또는 github가 선택되어 있는지) 잘 모르겠습니다.


4
git pull은 가져올 원격지와 병합 할 분기를 구성하지 않는 한 작동하지 않습니다.
Abizern 2010

나는 그것이 "포크 만들기"단계에서 수행되었다고 가정하고있다. 이 정보가 버려지지 않는 한 여전히 거기에 있어야합니다.
Šimon Tóth 2011

https와 함께 git pull을 사용하는 것은 작동하지 않았지만 http에서는 작동했습니다 ... 이제 최신 상태입니다. 감사합니다!
George Profenza

@GeorgeProfenza 안전하지 않습니다. 사용 고려ssh
JVE999 2014-07-25

66

업데이트가 마스터에 있고 변경 사항을 병합하려는 분기에 있다고 가정합니다.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

또한 병합을 저장소 사본으로 다시 푸시해야합니다.

git push origin master

추가 작업, 당기지 않음 :(, https : 오류 : github.com/mrdoob/three.js.git/info/refs에 액세스하는 동안 libcurl에서 프로토콜 https가 지원되지 않거나 비활성화되었습니다 . 힌트?
George Profenza

어떤 플랫폼? git의 종속성 중 하나가 완료되지 않은 것 같습니다.
Mark Hibberd

해결 방법으로 https 대신 git 프로토콜을 사용할 수도 있습니다. 예 : git remote set-url git : //github.com/mrdoob/three.js.git-그런 다음 git pull을 시도하십시오.
Mark Hibberd

osx에서 실행됩니다. 나는 자식 풀 이용하여 얻을 관리 않았다 github.com/mrdoob/three.js.git의 마스터
조지 Profenza에게

3
명령에 오타가있는 것 같습니다.로 시작한 original다음 다음으로 전환합니다origin
Benjol

46

원본 저장소를 업스트림으로 추가해야합니다.

https://help.github.com/articles/fork-a-repo 에서 모두 잘 설명되어 있습니다.

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master

5

원래 저장소 (포크 한 저장소)를 원격으로 추가해야합니다.

git remote add github (orignal 저장소의 복제 URL)

그런 다음 변경 사항을 로컬 저장소로 가져와야합니다.

git fetch github

이제 로컬 저장소에 원래 저장소의 모든 분기가 있습니다. 예를 들어 마스터 분기는 github/master. 이 지점으로 당신이 원하는 것을 할 수 있습니다. 그것들을 지점 등에 병합하십시오.


1
나는 upstream리모컨 의 이름 을 제안합니다 .
vidstige

@vidstige 리포지토리에 리모컨이 여러 개있는 경우 설명이 충분하지 않습니다. 예를 들어 Github에는 리모컨이 있고 Dropbox에는 리모컨이 있습니다.
Abizern 2015 년

그럼 당연히 말이됩니다. 그렇기 때문에 직접 이름을 지을 수있는 능력이있는 것이 좋습니다. 당신의 설정이 당신 자신의 포크 인 origin이라고 불리는 하나의 리모트를 가지는 것보다 덜 일반적임을 깨닫고 당신은 일반적으로 "upstream"이라고 불리는 원본을 가지고 있습니다.
vidstige

-8

Linux의 경우 :

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all

3
이것은 OP가 찾던 것과 반대입니다.
라이언
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.