IT이야기

git에서 다른 사람의 프로젝트에 대한 pull 요청 병합 방법

cyworld 2021. 9. 27. 21:37
반응형

git에서 다른 사람의 프로젝트에 대한 pull 요청을 어떻게 병합합니까?


내 컴퓨터에서 이 저장소를 복제했습니다: https://github.com/derobins/wmd.git

하지만 여기에는 몇 가지 버그가 있으며 다른 사용자가 버그를 수정하고 "풀 요청"을 실행한 것 같습니다(변경 사항을 커밋하기 위한 요청이라고 가정합니까?)

이러한 변경 사항을 로컬 버전에 병합할 수 있습니까?

편집: 분명히 하자면 이것은 내 저장소 아닙니다 . 저는 derobins의 WMD 편집기를 사용하고 있지만 풀 요청에서 수정해야 하는 몇 가지 버그가 있습니다. 나는 Ubuntu(github가 아님)에서 repo를 복제했으며 가능한 경우 이러한 변경 사항을 병합하기를 희망했습니다.


(GitHub에는 pull 요청을 처리하는 방법에 대한 매우 철저한 문서 가 있습니다.)

기본적으로 pull 요청을 한 사람의 저장소에 대한 원격을 추가하고 싶을 것입니다. 예:

git remote add helpful git://github.com/helpful-person/whatever.git

... 그런 다음 변경 사항을 원격 추적 분기로 가져옵니다.

git fetch helpful

... 이제 업스트림 리포지토리의 복제본에 해당 사람의 GitHub 리포지토리의 모든 커밋이 있습니다. 해당 pull 요청 내의 추가 커밋을 보면 다음을 수행할 수 있습니다.

  1. 예를 들어 최신 것을 병합하십시오. git merge 75708aeab5
  2. 이러한 변경 사항을 각각 선택하십시오. 예를 들어 git cherry-pick 2142db89,git cherry-pick 75708aeab5
  3. 추가 작업을 위해 로컬 분기를 만듭니다. 예를 들어 git checkout -b fix-for-issue3 75708aeab5
  4. 등 등

대안은 풀 요청을 한 기여자의 리포지토리를 복제하는 것입니다. 동일한 경우 해당 수정 사항에 대한 것입니다.


수락 된 답변은 pull 요청을 한 사람의 저장소에 대해 원격을 복제하거나 추가하도록 제안합니다. 또 다른 깨끗하고 간단한 방법 은 이 명령을 사용하는 입니다.

git pull https://github.com/otheruser/repo.git branchname

예를 들어, 글을 쓰는 시점에서 ghi 에는 아직 병합되지 않은 3개의 열린 pull 요청이 있습니다. 이것이 내가 로컬 저장소에 병합하기 위해 한 일입니다.

# I want to make sure my master is in sync with the upstream master
git checkout -b merge-patches master
# first pull request
git pull --no-ff https://github.com/TiddoLangerak/ghi.git master
# second pull request
git pull --no-ff https://github.com/wayfare/ghi.git master

두 pull 요청 모두 master에서 전송되었으므로 내가 그들의 master분기 에서 가져온 것 입니다.

이렇게 하면 다른 리포지토리가 리모컨에 추가되지 않으며 로컬에서 선택하거나 복제할 필요도 없습니다.


저장소를 github 계정에 복제합니다. 그런 다음 복제된 리포지토리의 forkqueue를 방문하여 리포지토리에 병합하려는 패치를 선택합니다.

ReferenceURL : https://stackoverflow.com/questions/5553156/how-do-i-merge-a-pull-request-on-someone-elses-project-in-git

반응형