GitHub 풀 요청을 Git로 확인하려면 어떻게 해야 합니까?
GitHub 웹 인터페이스를 통해 생성된 이전의 pull 요청을 확인하고 싶습니다.검색해보니 refs/pull 또는 refs/pull/pr이 있는 다른 곳을 찾았습니다.
하지만 제가 추가할 때fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
fetchgit을 합니다.
내가 뭘 잘못하고 있는 거지?GitHub이 pull/xyz 내용을 자동으로 생성해야 합니까, 아니면 구성해야 합니까?
원격 PR을 로컬 저장소로 가져오려면,
git fetch origin pull/$ID/head:$BRANCHNAME
$ID
요청 및 꺼기 요청 ID입니다.$BRANCHNAME
생성할 새 분기의 이름입니다. " " " " " 를 작성합니다.
git checkout $BRANCHNAME
예를 들어, 오리진 주 분기에서 꺼내기 요청 #2를 체크아웃하려고 한다고 가정해 보겠습니다.
git fetch origin pull/2/head:MASTER
자세한 내용은 GitHub 공식 설명서를 참조하십시오.
분기 이름을 지정할 필요 없이 가져오기:
git pull origin pull/939/head
컴퓨터에서 특정 꺼내기 요청을 받으려면 어떻게 해야 합니까?
로컬 지점을 만들지 않고 가져오기 및 체크아웃하고 HEAD 분리 상태를 선호합니다.불필요한 로컬 분기로 로컬 컴퓨터를 오염시키지 않고 풀 요청을 빠르게 확인할 수 있습니다.
git fetch upstream pull/ID/head && git checkout FETCH_HEAD
ID
ID 및 꺼기요입 ID입니다.upstream
여기서 is는 원래 꺼내기 요청이 생성되었습니다(일 수 있음).origin
예를 들어).
그 요지는 당신이 git fetch를 할 때 무슨 일이 일어나는지 설명합니다.
분명히, github URL을 프로젝트의 URL과 일치하도록 변경합니다.결국 다음과 같이 됩니다.
[remote "origin"]
url = git@github.com:joyent/node.git
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
fetch = +refs/heads/*:refs/remotes/origin/*
다음 순서를 기록합니다.fetch
crashneb의 댓글에서 제안된 refspecs, 그 자신의 답변에서.
그렇지 않은 경우, 다음과 같은 이유로 인해 올바른 주문을 받지 못한 경우를 의미합니다.
git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*" ...
자연스럽게 할 수 .
git switch pr/1
도 있고, "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""git pull
다시 한 번
그branch.pr/1.merge
구성 값이 올바르지 않습니다.
이제 모든 꺼내기 요청을 가져옵니다.
$ git fetch origin From github.com:joyent/node * [new ref] refs/pull/1000/head -> origin/pr/1000 * [new ref] refs/pull/1002/head -> origin/pr/1002 * [new ref] refs/pull/1004/head -> origin/pr/1004 * [new ref] refs/pull/1009/head -> origin/pr/1009 ...
특정 끌어오기 요청 체크아웃하기
$ git checkout pr/999 Branch pr/999 set up to track remote branch pr/999 from origin. Switched to a new branch 'pr/999'
이 작업을 자동화하기 위해 259호에 다양한 스크립트가 나열되어 있습니다.
git-extra 프로젝트는 다음 명령을 제안합니다.git-pr
(PR 262에서 구현)
git-pr
을 로컬로 합니다. -- " 꺼기요체합니웃다아크로로컬을청내▁--다니합▁locally웃▁checks"
개요
git-pr <number> [<remote>] git-pr clean
묘사
GitHub 풀 요청 번호를 기반으로 로컬 분기를 만들고 나중에 해당 분기로 전환합니다.
가져올 원격의 이름입니다.은 " " "입니다.
origin
.예
요청인 "요을니다합확인풀청"를합니다.
226
origin
:$ git pr 226 remote: Counting objects: 12, done. remote: Compressing objects: 100% (9/9), done. remote: Total 12 (delta 3), reused 9 (delta 3) Unpacking objects: 100% (12/12), done. From https://github.com/visionmedia/git-extras * [new ref] refs/pull/226/head -> pr/226 Switched to branch 'pr/226'
Github CLI를 사용하면 꺼내기 요청의 분기를 ID(doc)별로 로컬로 체크아웃할 수 있습니다.
gh pr checkout 2267
이를 통해 간단한 조작으로 변경 사항을 다시 포크로 밀어 넣을 수 있습니다.git push
홍보 제출자가 사용자에게 포크에 대한 편집 권한을 부여한 경우.
Github.com 을 사용하는 경우 "Pull requests"로 이동하여 관련 pull requests를 클릭한 다음 "Command line instructions" 링크를 클릭합니다.
Steven Penny의 답변을 참고하여 테스트 브랜치를 생성하고 PR을 테스트하는 것이 가장 좋습니다.그래서 여러분이 할 일은 이렇습니다.
- PR을 로컬로 병합할 테스트 분기를 만듭니다.당신이 마스터 브랜치에 있다고 가정할 때:
git checkout -b test
- PR 변경 사항을 테스트 분기로 가져옵니다.
git pull origin pull/939/head:test
이제 이 로컬 테스트 분기(이 경우 test라는 이름의)에서 변경 사항을 안전하게 테스트할 수 있으며, 만족하면 GitHub에서 정상적으로 병합할 수 있습니다.
위의 일부 옵션의 문제는 PR을 연 후 누군가 PR에 커밋을 더 많이 푸시하면 최신 버전을 제공하지 않는다는 것입니다.나에게 가장 효과적인 것은 PR로 가서 '커밋'을 누르고, 가장 최근의 커밋 해시를 보려면 아래로 스크롤한 다음 단순히 git checkout을 사용하는 것입니다.
git checkout <commit number>
위의 예에서.
git checkout 0ba1a50
사용할 수 있습니다.git config
에 새 것을 합니다..git/config
저장소에서 꺼내기 요청을 가져오려면 다음을 수행합니다.
$ git config --local --add remote.origin.fetch '+refs/pull/*/head:refs/remotes/origin/pr/*'
그리고 그냥:
$ git fetch origin
Fetching origin
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 4 (delta 2), reused 4 (delta 2), pack-reused 0
Unpacking objects: 100% (4/4), done.
From https://github.com/container-images/memcached
* [new ref] refs/pull/2/head -> origin/pr/2
* [new ref] refs/pull/3/head -> origin/pr/3
비트 버킷의 경우 단어를 대체해야 합니다.pull
pull-requests
.
풀 할 수 방법은 "pull request URL" 입니다.git ls-remote origin
지휘권
$ git ls-remote origin |grep pull
f3f40f2ca9509368c959b0b13729dc0ae2fbf2ae refs/pull-requests/1503/from
da4666bd91eabcc6f2c214e0bbd99d543d94767e refs/pull-requests/1503/merge
...
보다피, 그은것입니다.refs/pull-requests/1503/from
에 refs/pull/1503/from
그런 다음 모든 답변의 명령을 사용할 수 있습니다.
포크를 만들고 원격 업스트림 레포를 추가하는 "github fork" 워크플로우를 따르는 경우:
14:47 $ git remote -v
origin git@github.com:<yourname>/<repo_name>.git (fetch)
origin git@github.com:<yourname>/<repo_name>.git (push)
upstream git@github.com:<repo_owrer>/<repo_name>.git (fetch)
upstream git@github.com:<repo_owner>/<repo_name>.git (push)
현재 분기에 연결하는 명령은 다음과 같습니다.
git pull upstream pull/<pull_request_number>/head
코드는 다음과 같이 표시됩니다.
git fetch upstream pull/<pull_request_number>/head:newbranch
저는 github: https://github.com/github/hub 의 도구인 허브를 사용하고 있습니다.
허브가 로컬로 풀 요청을 체크아웃하면 다음과 같이 쉽게 처리할 수 있습니다.
hub checkout https://github.com/owner/repo/pull/1234
or
hub pr checkout 1234
저는 실수로 git-extra에서 제공한 것과 거의 같은 내용을 쓰게 되었습니다.따라서 다른 추가 명령을 설치하는 대신 단일 사용자 지정 명령을 선호하는 경우 이 파일을 사용자 지정 명령의 어딘가에 배치합니다.$PATH
그런 다음 이렇게 쓰면 됩니다.
git pr 42
// or
git pr upstream 42
// or
git pr https://github.com/peerigon/phridge/pull/1
원격 PR 분기를 로컬 분기로 가져옵니다.
git fetch origin ‘remote_branch’:‘local_branch_name’
로컬 분기의 업스트림을 원격 분기로 설정합니다.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
PR 분기에 로컬 변경 사항을 다시 푸시하려는 경우
git push origin HEAD:remote_PR_Branch_name
Git의 최신 버전과 함께 사용하는 경우:
git fetch origin refs/pull-requests/<id>/from:<localbranchname>
로컬에서 PR을 빠르게 확인하려면 PR을 열고 PR이 생성된 지점 이름을 확인하십시오.
빨간색 선에서 볼 수 있듯이 지점 이름은 'CLUPET-173-glr-apis'입니다. 아래 명령을 사용하여 PR/지점의 코드를 빠르게 확인하십시오.
git checkout origin/CLUPET-173-glrr-apis
로컬의 이 코드는 분리된 헤드 모드로 실행됩니다.
모든 PR 코드 보기를 중지하고 이전 분기로 돌아가려면 다음과 같이 하십시오.
git switch -
PR(PR을 가져온 후 새로 변경한 로컬 변경 사항 포함)을 새 로컬 분기로 이동하려면 아래 명령을 사용합니다.
git switch -c myNewLocalBranch
출처 및 업스트림 정보가 아래와 같다고 가정합니다.
$ git remote -v
origin git@github.com:<yourname>/<repo_name>.git (fetch)
origin git@github.com:<yourname>/<repo_name>.git (push)
upstream git@github.com:<repo_owner>/<repo_name>.git (fetch)
upstream git@github.com:<repo_owner>/<repo_name>.git (push)
그리고 당신의 지점 이름은.
<repo_owner>:<BranchName>
그리고나서
git pull origin <BranchName>
그 일을 할 것입니다.
PR을 체크아웃하고 해당 PR의 모든 변경 사항을 VSCode의 기본 분기와 비교하여 확인합니다.와 유사한files changed
Github PR 페이지의 섹션.
체크아웃 PR(100)이 '분리 HEAD' 상태임
git fetch origin pull/100/head && git checkout FETCH_HEAD
커밋되지 않은 변경으로 표시
git reset main
다시 주 분기로 전환하고 변경 사항을 전달합니다.
git switch -
이 스레드에 대한 대부분의 답변이 작동하지만, 저는 새 분기에서 풀 요청을 가져와 이전 커밋으로 소프트 재설정(PR 변경 사항을 스테이징 영역으로 이동)하는 것을 선호합니다. 이를 통해 IDE의 차이를 테스트하고 확인할 수 있습니다.
git fetch origin pull/<PR-id>/head:<BRANCH_NAME>
git checkout BRANCH_NAME
그런 다음 이전 커밋으로 소프트 재설정합니다(사용하는 커밋 목록 참조).git log
)
git reset --soft <hash_of_old_commit>
예
git fetch origin pull/65/head:test-branch
git checkout test-branch
git log # press 'q' to exit
git reset --soft 7d7fe166cd878ed70c559c4e98faf2323532
위 명령을 실행하면 PR의 변경 내용이 풀되어 IDE 버전에 표시되며 변경 내용은 커밋되지 않으며 스테이징 영역에서 차이를 확인할 수 있습니다(변경 내용이 로컬에서 수행된 것처럼).
참조: Github 문서 참조
git-cli를 사용하여 이를 수행하는 쉬운 방법이 있습니다.
gh pr checkout {<number> | <url> | <branch>}
참조: https://cli.github.com/manual/gh_pr_checkout
로컬 분기 만들기
git checkout -b local-branch-name
원격 PR 꺼내기
git pull git@github.com:your-repo-ssh.git remote-branch-name
언급URL : https://stackoverflow.com/questions/27567846/how-can-i-check-out-a-github-pull-request-with-git
'sourcecode' 카테고리의 다른 글
제공자 설치 관리자 모듈을 로드하지 못했습니다.허용 가능한 모듈을 찾을 수 없습니다.로컬 버전은 0이고 원격 버전은 0 오류 변동입니다. (0) | 2023.07.07 |
---|---|
비트 배열에 설정된 최상위 비트(맨 왼쪽) 찾기 (0) | 2023.07.07 |
Java에서 Excel 워크북 간에 시트를 복사하는 방법 (0) | 2023.07.02 |
내부 순환; 빌드에서 신뢰할 수 없는 결과를 생성할 수 있음: Xcode 오류 (0) | 2023.07.02 |
int가 짧고 잘린 경우 새 값은 어떻게 결정됩니까? (0) | 2023.07.02 |