git으로 GitHub 풀 요청을 어떻게 확인할 수 있습니까? 통해 생성 됨)을 확인하고 싶습니다. refs /

이전에 생성 된 풀 요청 (GitHub 웹 인터페이스를 통해 생성 됨)을 확인하고 싶습니다. refs / pull 또는 refs / pull / pr이있는 다른 장소를 검색하고 찾았습니다.

그러나 fetch = +refs/pull/*/head:refs/remotes/origin/pr/*git config 파일에 추가 하고 git fetch를 수행하면

내가 뭘 잘못하고 있니? GitHub가 pull / xyz 항목을 자동으로 생성해야합니까, 아니면 무언가를 구성해야합니까?



답변

로컬 PR에 원격 PR을 가져 오려면

git fetch origin pull/ID/head:BRANCHNAME

여기서 IDpull 요청 ID BRANCHNAME는 작성하려는 새 분기의 이름입니다. 지점을 만들면 간단히

git checkout BRANCHNAME

자세한 내용은 공식 GitHub 설명서 를 참조하십시오.


답변

분기 이름을 지정하지 않아도 가져옵니다.

git pull origin pull/939/head

머신에서 특정 풀 요청을 받으려면 어떻게해야합니까?


답변

그 요점 은 git fetch를 할 때 일어난 일을 설명합니다.

분명히 github url을 프로젝트의 URL과 일치하도록 변경하십시오. 다음과 같이 보입니다.

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:joyent/node.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

이제 모든 풀 요청을 가져옵니다.

$ 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 에 나열된 다양한 스크립트가 있습니다 . 자식 – 엑스트라의 프로젝트는 명령 제안 (구현 PR 262 )
git-pr

git-pr(1)-풀 요청을 로컬로 체크 아웃

개요

git-pr <number> [<remote>]
git-pr clean

기술

GitHub 풀 요청 번호를 기반으로 로컬 브랜치를 생성 한 후 해당 브랜치로 전환합니다.

가져올 원격의 이름입니다. 기본값은 origin입니다.

실시 예

풀 요청 226origin다음 에서 확인합니다 .

$ 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'

답변

로컬 브랜치를 만들지 않고 페치 및 체크 아웃 하고 HEAD 분리 상태있는 것을 선호합니다 . 불필요한 로컬 브랜치로 로컬 시스템을 오염시키지 않고 풀 요청을 신속하게 확인할 수 있습니다.

git fetch upstream pull/ID/head && git checkout FETCH_HEAD

여기서 IDpull 요청 ID upstream는 어디에 있고 원래 pull 요청은 어디에서 만들어 졌는가 ( origin예 🙂 일 수 있습니다 .

도움이 되길 바랍니다.


답변

Steven Penny의 답변을 참조하면 테스트 브랜치를 만들고 PR을 테스트하는 것이 가장 좋습니다. 여기 당신이 할 일이 있습니다.

  1. PR을 로컬로 병합 할 테스트 분기를 작성하십시오. 마스터 브랜치에 있다고 가정합니다.

git checkout -b test

  1. 테스트 브랜치로 PR 변경 사항 가져 오기

git pull origin pull/939/head:test

이제이 로컬 테스트 브랜치 (이 경우 test ) 의 변경 사항을 안전하게 테스트 할 수 있으며 일단 만족하면 GitHub에서 평소대로 병합 할 수 있습니다.


답변

Github.com을 사용하는 경우 “풀 요청”으로 이동하여 관련 풀 요청을 클릭 한 다음 “명령 줄 지침”링크를 클릭하십시오.


답변

저장소에서 풀 요청을 가져 오기 위해 git configcommand를 사용 하여 새 규칙을 작성할 수 있습니다 .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