source

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

lovecheck 2023. 4. 22. 09:43
반응형

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

GitHub에서 누군가의 저장소를 포킹하여 원래 저장소에서 이루어진 커밋과 업데이트로 내 버전을 업데이트하고 싶습니다.이것들은 내가 복사한 후에 만든 것이다.

원본에서 변경한 내용을 가져와 저장소에 포함하려면 어떻게 해야 합니까?

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

저장소 포킹에 대한 GitHub 문서에서 다음을 수행합니다.

"Fork" 버튼 주위에 직사각형 렌즈가 있는 오래된 GitHub 인터페이스의 스크린샷

클론이 완료되면 레포에 "라는 이름의 리모트가 생성됩니다.originGitHub의 포크를 가리키고 있습니다.
이름 때문에 헷갈리지 마세요.이것은 당신이 포크를 꺼낸 원래의 리포트를 가리키는 것이 아닙니다.해당 보고서를 추적할 수 있도록 "업스트림"이라는 이름의 다른 리모컨을 추가합니다.

$ cd PROJECT_NAME
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.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

위의 작업을 용이하게 하는 명령줄 도구()gh도 있습니다.

다음은 작동 방식을 보여 줍니다.

명령어 실행 후 결과 흐름도

"Git 포크는 실제로 Git 클론입니까?"를 참조하십시오.

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

리모트 브랜치에서 가져온 후에도 커밋을 Marge해야 합니다.대체하고 싶다

$ git fetch upstream

와 함께

$ git pull upstream master

git pull은 기본적으로 git fetch + git merge이기 때문입니다.

용도:

git remote add upstream ORIGINAL_REPOSITORY_URL

그러면 업스트림에서 분기한 저장소로 설정됩니다.다음 작업을 수행합니다.

git fetch upstream      

그러면 원래 저장소에서 마스터를 포함한 모든 분기가 가져옵니다.

로컬 마스터 브랜치에서 다음 데이터를 병합합니다.

git merge upstream/master

변경 내용을 분기된 저장소(예: 원본)에 푸시합니다.

git push origin master

Voila! 원래 저장소 동기화가 완료되었습니다.

동영상은 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포크가 변경되지 않은 경우 자동으로 병합할 수 있습니다.

CLI를 사용하지 않고 하려면 Github 웹사이트에서 완전히 실행할 수 있습니다.

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

GitHub 데스크톱 애플리케이션을 사용하는 경우 오른쪽 상단 모서리에 동기화 버튼이 있습니다.해서 럼럼클 click click 、 click 、 [ 릭 。Update from <original repo>왼쪽 상단 부근에 있습니다.

동기화할 변경이 없는 경우는, 이 변경은 무효가 됩니다.

여기 이것을 쉽게 하기 위한 스크린샷이 있습니다.

잃어버릴 것이 없다면 포크를 삭제하기만 하면 됩니다.설정으로 이동해 주세요.아래 위험 영역 섹션으로 이동하여 저장소 삭제를 클릭합니다.저장소 이름과 암호를 입력하라는 메시지가 표시됩니다.그 후 다시 원본을 포크합니다.

분기된 저장소를 상위 저장소와 자동으로 동기화하려면 GitHub에서 Pull App을 사용할 수 있습니다.

상세한 것에 대하여는, 「Readme」를 참조해 주세요.

분기된 리포지토리에 대한 변경 내용을 보존하는 고급 설정은 여기에서 유사한 질문에 대한 답변을 참조하십시오.

언급URL : https://stackoverflow.com/questions/3903817/pull-new-updates-from-original-github-repository-into-forked-github-repository

반응형