GitHub에서 저장소를 복제하고 싶습니다. 문제는 내가 메인 브랜치를 원하지 않는다는 것입니다. 이 승인되지 않은 풀 리퀘스트 의 버전을 원합니다 .
메인 리포지토리 대신 풀 리퀘스트 버전을 복제 할 수 있습니까?
답변
-b
옵션 및 pull 요청 을 사용하여 원하는 분기를 복제 할 수 있습니다 .
git clone https://github.com/user_name/repo_name.git -b feature/pull_request_name dir_name
귀하의 경우 복제하려는 브랜치는 풀 요청 ( feature/mongoose-support
) 의 소스 브랜치입니다 .
git clone https://github.com/berstend/frappe.git -b feature/mongoose-support ./mongoose-support
답변
이를 수행하는 가장 쉬운 방법은 다음과 같습니다.
git fetch origin pull/2/head
git checkout -b pullrequest FETCH_HEAD
이제 풀 요청 상태에있는 새 분기에있게됩니다.
다음을 실행하여 별칭을 설정할 수 있습니다.
git config --global alias.pro '!f() { git fetch -fu ${2:-origin} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f'
이제를 실행 git pr <pr_number>
하거나 git pr <pr_number> <remote>
github 리모컨의 이름이 지정되지 않은 경우 모든 PR을 확인할 수 있습니다 origin
.
답변
git fetch origin refs/pull/PR_NUMBER/head:NEW_LOCAL_BRANCH
예 :
$ git fetch origin pull/611/head:pull_611
$ git checkout pull_611
GitHub의 포크에서 변경, 커밋, PUSH 및 새 PR 열기
답변
이 요점 의 지침에 따라 저장소와 브랜치를 파악하지 않고도 리모컨을 직접 확인할 수 있습니다.
사용 예
내 프로젝트 중 하나 (github3.py)의 경우 다음이 있습니다. github3.py/.git/config
[remote "github"]
fetch = +refs/heads/*:refs/remotes/github/*
fetch = +refs/pull/*/head:refs/remotes/github/pr/*
url = git@github.com:sigmavirus24/github3.py
첫 번째 줄은 github
원격의 이름으로 대체되는 예외를 제외하고 모든 원격의 표준입니다 . 이것이 의미하는 것은 원격 헤드 (또는 해당 서버의 분기 헤드)가 접두사가 붙은 로컬 원격에 “매핑”된다는 것 github/
입니다. 그래서 만약 내가 git fetch github
GitHub에 브랜치를 가지고 있었는데 아직 내 컴퓨터에서 로컬로 발견되지 않았다면 브랜치를 다운로드 할 것이고 다음과 같이 전환 할 수있을 것 git checkout -t github/branch_name
입니다.
두 번째 줄은 동일한 작업을 수행하지만 표준 git 분기 대신 풀 요청에 대해 수행합니다. 그것이 당신이 보는 이유 refs/pull/*/head
입니다. GitHub에서 각 pull 요청의 헤드를 가져 와서 github/pr/#
. 따라서 누군가가 pull 요청을 보내고 번호가 62 인 경우 (예 🙂 다음을 수행합니다.
git fetch github
git checkout -t github/pr/62
그런 다음 pr/62
(이미 존재하지 않는다고 가정) 라는 로컬 지점에 있습니다. 훌륭하고 다른 사람의 리모컨이나 지점을 추적 할 필요가 없음을 의미합니다.
답변
git clone git://github.com/dweldon/frappe
cd frappe
git pull origin pull/2/head
답변
사용자가 풀 요청을 제출하면 일부 변경 사항을 포크 복제본의 브랜치에서 다른 사용자의 저장소로 다시 병합하도록 요청합니다.
원하는 변경 사항은 pull 요청의 소스에서 가져올 수 있습니다. 이렇게하려면 사용자의 저장소 ( git://github.com/berstend/frappe.git
)를 복제 한 다음, 그가 생성 한 풀 요청 브랜치를 확인합니다 ( feature/mongoose-support
).
답변
git-extras 설치 후
(cd /tmp && git clone --depth 1 https://github.com/tj/git-extras.git && cd git-extras && sudo make install)
당신은 단순히 사용할 수 있습니다 git pr
$ git pr 62 [remote]