다른 포크의 병합되지 않은 업스트림 풀 요청을 포크에 적용하려면 어떻게 해야 합니까?
제가 포크를 가지고 있는 GitHub의 프로젝트는 저자가 아직 포크를 끌어당기지 않은 새로운 풀 요청을 가지고 있습니다.
다른 포크의 당김 요청을 내 포크에 적용할 수 있는 간단한 방법이 있나요?제가 놓치고 있는 게 또 있나요?
업데이트: 웹 페이지 경유
github 웹 페이지를 통해서도 이 작업을 수행할 수 있습니다.
포크)는 이미 있을 MyFork ) 。BaseRepo인 풀 Pooring Pull Request」(「Pooring Pool Request」)가 있다OtherFork을 사용하다
- Fork)로합니다.
OtherFork포크 「」에 풀( 「」)를 했습니다.MyFork) - page page page 、 、 requests 、 requests 、 requests 、 go 、 go 、 go 、 go 、 go 、 go 。
OtherFork - 새 풀 요청 클릭
- 보류 중인 풀 요청을 제공해야 합니다. 「」를 해 주세요.
OtherFork브런치도 있어요.을 포크로 합니다(포크MyFork)(중요). - , 그럼 입니다.
View pull requestshould should to to to to 로 바꿔야 한다Create pull request이을 클릭합니다. 기를를클클클클클
으로 포크 pull )에 인 풀 입니다.MyFork )는 받아 들일 수 .
수동으로 간단하게 할 수 있습니다.
다른 포크를 리포의 리모트로 추가합니다.
git remote add otherfork git://github.com/request-author/project.git그의 의견을 받아들이다.
git fetch otherfork풀 요청을 적용할 수 있는 옵션은 두 가지가 있습니다(선택 1을 선택하지 않을 경우).
오리진과 풀 요청 사이에 추가된 최종 커밋도 적용할 필요가 없다면 풀 요청이 형성된 브랜치를 기본 재배치할 수 있습니다.
git rebase master otherfork/pullrequest-branch풀 요구에 커밋만 필요한 경우 해당 SHA1을 식별하고 다음 작업을 수행합니다.
git cherry-pick <first-SHA1> <second-SHA1> <etc.>
Tekkub이 전에 말한 것처럼, 브랜치를 직접 끌어당기면 됩니다.GitHub에서는 대부분의 경우 브랜치는 단순히 프로젝트의 사용자 포크에서 "마스터"입니다.
::git pull https://github.com/USER/PROJECT/ BRANCH
예를 들면 다음과 같습니다.
safaribooks라고 하는 github 프로젝트를 포크로 하고, 원래의 프로젝트에서 포크에 넣고 싶은 다음과 같은 풀 요청이 있다고 합시다.
그런 다음 포크의 복제된 프로젝트 폴더에서 다음을 실행하십시오.
git pull https://github.com/fermionic/safaribooks.git fix-str-decode
프로젝트에 대한 풀 요청은 다양한 작성자(포크)로부터 받을 수 있으며, 포크별로 별도의 리모콘을 필요로 하지 않을 수 있습니다.또한 작성자가 풀 요청을 제출할 때 사용한 브랜치나 작성자의 마스터 브랜치에 있을 수 있는 다른 브랜치에 대해 추측하고 싶지 않습니다.따라서 풀 요청은 다른 포크에 표시되는 것보다 업스트림 저장소에 표시되는 대로 참조하는 것이 좋습니다.
순서 1:
git remote add upstream <url>
이 단계는 이미 완료되어 있을 것입니다.그렇지 않은 경우 업스트림프로젝트에 리모트를 정의해야 합니다.URL은 분기한 프로젝트의 복제 URL입니다.자세한 내용은 리모컨의 포크 설정 및 포크 동기화. upstream리모콘에 붙이는 이름으로, 어떤 것이든 상관없습니다.upstream일반적인 이름입니다.
순서 2:
git pull upstream refs/pull/{id}/head
...어디에{id}는 풀 요구 번호입니다. upstream는, 꺼낼 리모콘의 이름입니다.즉, 순서 1을 정확히 따랐을 경우는 「단순히」입니다.URL일 수도 있습니다.이 경우 1단계를 건너뛸 수 있습니다.
순서 3:
병합 커밋 메시지를 입력합니다.디폴트는 그대로 사용할 수 있지만 풀 요구 번호, 해결된 문제 및 간단한 설명을 포함한 한 줄의 요약 정보를 제공하는 것이 좋습니다.
Merge PR#42, fixing VIM-652, support for mapping arbitrary IDEA actions
좀 더 자세한 정보가 도움이 됐거든
분기된 repo의 .git/config 파일은 다음과 같습니다.
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = git@github.com:litzinger/angular-carousel.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "source"]
url = git://github.com/revolunet/angular-carousel.git
fetch = +refs/heads/*:refs/remotes/source/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
그런 다음 "git fetch source"를 실행하여 분기된 repo에서 모든 풀 요청을 나열합니다.
* [new ref] refs/pull/54/head -> origin/pr/54
* [new ref] refs/pull/67/head -> origin/pr/67
* [new ref] refs/pull/69/head -> origin/pr/69
* [new ref] refs/pull/71/head -> origin/pr/71
그런 다음 특정 풀 요청에서 병합하려면 "git merge master origin/pr/67"을 실행합니다.
제가 할 일은 다음과 같습니다.
git checkout master
git remote add #NAME# #ADDRESS TO REPO#
git fetch #USERNAME#
git checkout -b test_fork
git rebase #NAME#/#BRANCH#
이제 변경 내용을 테스트브런치로 통합했습니다test_fork어떤 변화도 내 트리를 더럽히지 않도록.
필요에 따라서, 상기와 같이 체리 픽을 사용하고, 필요에 따라서 특정의 커밋을 선택할 수 있습니다.
즐거운 여행 되세요 :)
나는 이것을 위해 편리한 댄디 스크립트를 사용한다.다음을 입력하여 스크립트를 실행합니다.
git prfetch upstream
업스트림포크에서 모든 풀 요구를 가져옵니다.
스크립트를 작성하려면 파일 만들기~/bin/git-prfetch.
파일에는 다음이 포함되어 있어야 합니다.
#!/bin/bash
if [ -z "$1" ]; then
echo "Please supply the name of a remote to get pull requests from."
exit 1
fi
git fetch $1 +refs/heads/\*:refs/remotes/$1/\* +refs/pull/\*/head:refs/remotes/$1/pr/\*
다음과 같이 설정하여 경로에 스크립트가 포함되어 있는지 확인합니다.
export PATH="$HOME/bin:$PATH"
이 파일을 다음에 추가할 수 있습니다.~/.bashrc영속적인 변경을 실시합니다.
이제 풀 요청을 받을 포크를 추가해야 합니다.
git remote add upstream https://github.com/user/repo.git
그리고 나서.
git prfetch upstream
언급URL : https://stackoverflow.com/questions/6022302/how-to-apply-unmerged-upstream-pull-requests-from-other-forks-into-my-fork
'programing' 카테고리의 다른 글
| 'tail' 명령어와 동등한 명령어 (0) | 2023.04.10 |
|---|---|
| 대상 주체 이름이 잘못되었습니다.SSPI 컨텍스트를 생성할 수 없습니다. (0) | 2023.04.10 |
| SQL Server의 에일리어스 컬럼에서 GROUP BY를 실행하려면 어떻게 해야 합니까? (0) | 2023.04.10 |
| WPF TextBlock과 TextBox 사이에 차이가 있습니까? (0) | 2023.04.10 |
| 열에 다른 열의 값이 포함되어 있는지 확인하시겠습니까? (0) | 2023.04.10 |
