[git] 원래 GitHub 저장소에서 분기 된 GitHub 저장소로 새 업데이트를 가져옵니다.

GitHub에서 누군가의 저장소를 포크하고 원래 저장소에서 수행 한 커밋 및 업데이트로 버전을 업데이트하고 싶습니다. 이것들은 내가 사본을 포크 한 후에 만들어졌습니다.

원본에서 작성된 변경 사항을 가져 와서 저장소에 통합하려면 어떻게해야합니까?



답변

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

로부터 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? ” 도 참조하십시오 .


답변

VonC의 답변 외에도 원하는대로 조정할 수 있습니다.

원격 브랜치에서 가져온 후에도 커밋을 병합해야합니다. 나는 교체 할 것이다

$ git fetch upstream

$ git pull upstream master

git pull은 본질적으로 git fetch + git merge이기 때문에.


답변

비디오GitHub에서 직접 포크를 업데이트하는 방법을 보여줍니다

단계 :

  1. GitHub에서 포크를 엽니 다.
  2. 를 클릭하십시오 Pull Requests.
  3. 를 클릭하십시오 New Pull Request. 기본적으로 GitHub는 원본을 포크와 비교하므로 변경하지 않은 경우 비교할 내용이 없습니다.
  4. 를 클릭하십시오 switching the base. 이제 GitHub는 포크와 원본을 비교할 것이며 모든 최신 변경 사항을 볼 수 있습니다.
  5. Create a pull request이 비교를 클릭하고 풀 요청에 예측 가능한 이름을 지정하십시오 (예 : 원본에서 업데이트).
  6. 를 클릭하십시오 Create pull request.
  7. 아래로 스크롤하여 클릭 Merge pull request하고 마지막으로 Confirm병합하십시오. 포크에 변경 사항이 없으면 자동으로 병합 할 수 있습니다.

답변

사용하다:

git remote add upstream ORIGINAL_REPOSITORY_URL

그러면 업스트림이 분기 저장소로 설정됩니다. 그런 다음이 작업을 수행하십시오.

git fetch upstream

원래 저장소에서 master를 포함한 모든 분기를 가져옵니다.

이 데이터를 로컬 마스터 브랜치에 병합하십시오.

git merge upstream/master

갈래 저장소로 변경 사항을 푸시하십시오.

git push origin master

짜잔! 원본 리포지토리 동기화가 완료되었습니다.


답변

GitHub 데스크톱 애플리케이션을 사용하는 경우 오른쪽 상단에 동기화 버튼이 있습니다. 그것을 클릭 한 다음 Update from <original repo>왼쪽 상단 근처에서 클릭하십시오 .

동기화 할 변경 사항이 없으면 비활성화됩니다.

다음은 스크린 샷 이 쉽게 할 수는.


답변

잃을 것이 없다면 포크를 삭제할 수도 있습니다. 설정으로 이동하십시오. 아래의 위험 구역 섹션으로 이동하여 저장소 삭제를 클릭하십시오. 리포지토리 이름과 암호를 입력하라는 메시지가 표시됩니다. 그런 다음 원본을 다시 포크하십시오.


답변

cli없이 수행하려면 Github 웹 사이트에서 완전히 수행 할 수 있습니다.

  1. 포크 저장소로 이동하십시오.
  2. 를 클릭하십시오 New pull request.
  3. 포크를 기본 저장소로 설정하고 원래 (업스트림) 저장소를 헤드 저장소로 설정하십시오. 일반적으로 마스터 브랜치 만 동기화하려고합니다.
  4. Create new pull request.
  5. 병합 버튼 오른쪽의 화살표를 선택하고 병합 대신 리베이스를 선택하십시오. 그런 다음 버튼을 클릭하십시오. 이렇게하면 불필요한 병합 커밋이 생성되지 않습니다.
  6. 끝난.