GitHub에서 누군가의 저장소를 포크하고 원래 저장소에서 수행 한 커밋 및 업데이트로 버전을 업데이트하고 싶습니다. 이것들은 내가 사본을 포크 한 후에 만들어졌습니다.
원본에서 작성된 변경 사항을 가져 와서 저장소에 통합하려면 어떻게해야합니까?
git push --force origin --tags
제안 된 솔루션 후에 수행하십시오!
GitHub에서 누군가의 저장소를 포크하고 원래 저장소에서 수행 한 커밋 및 업데이트로 버전을 업데이트하고 싶습니다. 이것들은 내가 사본을 포크 한 후에 만들어졌습니다.
원본에서 작성된 변경 사항을 가져 와서 저장소에 통합하려면 어떻게해야합니까?
git push --force origin --tags
제안 된 솔루션 후에 수행하십시오!
답변:
원래 저장소 (포크 한 저장소)를 원격으로 추가해야합니다.
로부터 GitHub의 포크 맨 페이지 :
복제가 완료되면
origin
리포지토리에 GitHub의 포크를 가리키는 “ ” 라는 리모컨이 있습니다.
이름을 혼동하지 마십시오. 이것은 원래 포크를 가리키는 것이 아닙니다. 해당 리포지토리를 추적 할 수 있도록“업스트림”이라는 다른 리모컨을 추가합니다.
$ cd github-services
$ git remote add upstream git://github.com/pjhyett/github-services.git
$ git fetch upstream
# then: (like "git pull" which is fetch + merge)
$ git merge upstream/master master
# or, better, replay your local work on top of the fetched branch
# like a "git pull --rebase"
$ git rebase upstream/master
GitHub 작업을 용이하게 하는 루비 젬 도 있습니다 .
" 깃 포크는 git clone? " 도 참조하십시오 .
git rebase upstream/master
하지만 대답에 두 가지 가능성을 추가했습니다.
git push --force
은 GitHub의 브랜치 히스토리를 방금 리베이스 한 로컬 브랜치로 대체합니다. 당신 만이 슬픈 가지를 사용하고 있기 때문에 혼란이 없습니다.
VonC의 답변 외에도 원하는대로 조정할 수 있습니다.
원격 브랜치에서 가져온 후에도 커밋을 병합해야합니다. 나는 교체 할 것이다
$ git fetch upstream
와
$ git pull upstream master
git pull은 본질적으로 git fetch + git merge이기 때문에.
git rebase upstream master
에서 충분히 분기 된 경우 충돌이 발생하지 않습니다 upstream/master
. 참조 git-scm.com/docs/git-rebase (TL; DR을 : 상류의이 하드 리셋 지역 마스터하고 앞으로 분기의 관점에서 로컬 커밋을 모두 remerge 시도)
이 비디오 는 GitHub에서 직접 포크를 업데이트하는 방법을 보여줍니다
단계 :
Pull Requests
.New Pull Request
. 기본적으로 GitHub는 원본을 포크와 비교하므로 변경하지 않은 경우 비교할 내용이 없습니다.switching the base
. 이제 GitHub는 포크와 원본을 비교할 것이며 모든 최신 변경 사항을 볼 수 있습니다.Create a pull request
이 비교를 클릭하고 풀 요청에 예측 가능한 이름을 지정하십시오 (예 : 원본에서 업데이트).Create pull request
.Merge pull request
하고 마지막으로 Confirm
병합하십시오. 포크에 변경 사항이 없으면 자동으로 병합 할 수 있습니다.switching the base
옵션을 찾을 수 없었다
사용하다:
git remote add upstream ORIGINAL_REPOSITORY_URL
그러면 업스트림이 분기 저장소로 설정됩니다. 그런 다음이 작업을 수행하십시오.
git fetch upstream
원래 저장소에서 master를 포함한 모든 분기를 가져옵니다.
이 데이터를 로컬 마스터 브랜치에 병합하십시오.
git merge upstream/master
갈래 저장소로 변경 사항을 푸시하십시오.
git push origin master
짜잔! 원본 리포지토리 동기화가 완료되었습니다.
GitHub 데스크톱 애플리케이션을 사용하는 경우 오른쪽 상단에 동기화 버튼이 있습니다. 그것을 클릭 한 다음 Update from <original repo>
왼쪽 상단 근처에서 클릭하십시오 .
동기화 할 변경 사항이 없으면 비활성화됩니다.
다음은 스크린 샷 이 쉽게 할 수는.