IT story

Github에서 풀 요청을 기본값과 다른 브랜치로 병합

hot-time 2020. 8. 6. 07:54
반응형

Github에서 풀 요청을 기본값과 다른 브랜치로 병합


풀 요청은 Github에서 호스팅되는 리포지토리로옵니다. 기본적으로 master지점으로 병합됩니다 .

변경 사항을 병합 할 지점을 변경할 수있는 방법이 있습니까?


2016 년 8 월 15 일 현재 GitHub에서는 GUI를 통해 풀 요청의 대상 분기를 변경할 수 있습니다. Edit제목 옆의을 클릭 한 다음 드롭 다운에서 지점을 선택하십시오.

스크린 샷

이제 열린 풀 요청의 기본 분기를 변경할 수 있습니다. 풀 요청을 생성 한 후 풀 요청의 변경 사항이 다른 브랜치와 비교되도록 기본 브랜치를 수정할 수 있습니다. 올바른 기본 분기로 새 분기를 열지 않고 원래 풀 요청의 기본 분기를 변경하면 소중한 작업과 토론을 유지할 수 있습니다.


제출자는 풀 요청을 발행 할 때이를 변경할 수 있지만 일단 발행하면 변경할 수 없습니다.

반면에 수동으로 분기와 푸시를 병합 할 수 있습니다. 이는 잘못 타겟팅 된 풀 요청에 대해 반 정기적으로 수행합니다.

풀 요청의 구성 요소 작업에 유용한 hubgem을 찾을 수 있습니다 .

그 보석은 수동 프로세스를 마무리합니다.

  1. 로컬 체크 아웃에 포크 리모컨추가하십시오 .
  2. 리모콘을 가져 오십시오.
  3. git checkout ${target_branch} && git merge ${remote}/${branch}
  4. git push origin ...

다른 답변에서 언급 한 허브 보석을 사용하는 대신 명령 줄을 사용하여 로컬로 끌어 오기 요청을 병합 하여 다음을 수행 할 수 있습니다.

$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*

위의 명령은 .git/config파일에 다음 줄을 먼저 추가 한 경우에만 직접 작동 합니다.

fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*

그것이하는 일은 모든 풀 요청 을 다운로드하는 것 입니다. 대규모 리포지토리에는 바람직하지 않을 수 있으므로 GitHub는 git fetch origin pull/ID/head:BRANCHNAME구문 을 특징으로 명령을 수정하여 구성 파일의 수정을 피하고 해당 단일 풀 요청 만 다운로드합니다.


기존 풀 요청을 사용자가 아닌 것으로 변경할 수는 없지만 관련 소스 리포지토리가 여전히 존재하는 경우 새 요청을 쉽게 만들 수 있습니다 (예 : 다른 사람이더라도).

제출자의 저장소로 이동 한 다음 동일한 커밋을 사용하여 저장소에서 새 풀 요청을 작성하지만 올바른 대상 분기를 올바르게 설정했는지 확인하십시오.

그런 다음 자신의 저장소로 돌아가서 새 풀 요청을 수락하십시오. 짜잔!


Daniel Pittman의 솔루션에는 아무런 문제가 없지만 병합을 "빨리 감기 없음"으로 처리합니다. 즉, 3 단계를 다음과 같이 변경합니다.

git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}

를 사용 --no-ff하면 기록을보다 쉽게 ​​읽을 수 있습니다. $n커밋은에서 왔다고 분명히 말하고 $branch, 그 지점에서 한 일을 되돌려 야 할 때 인생을 더 쉽게 만들 것입니다.

eoinoc의 질문에 대답하고 추가 팁을 제공하려면 다음을 수행하십시오.

병합 후 git cli는 메시지를 작성하라는 메시지를 표시합니다. 일반적으로 일반적인 메시지가 다음과 같이 나타납니다.

원격 추적 브랜치 'user / their-branch'를 브랜치에 병합

해당 메시지를 편집하고 풀 요청 번호에 대한 참조를 포함하십시오. 즉 : (풀 요청 번호가 123이라고 가정)

원격 추적 브랜치 'user / their-branch'를 브랜치에 병합

# 123 문제 해결 ...

따라서 다음에 github issues / pull-requests 페이지를 방문하여 특정 풀 요청을 확인하면 병합 한 위치를 커밋하는 링크가있는 메시지가 표시됩니다.

여기 제가 의미하는 바의 스크린 샷이 있습니다.

여기에 이미지 설명을 입력하십시오


이렇게하려면 리포지토리의 홈 페이지로 이동하여 분기를 클릭하고 기본 분기를 마스터에서 다른 것으로 변경하십시오 (제 경우에는 "dev").

그 후 누군가가 풀 요청을 만들 때마다 merge버튼은 요청을 마스터가 아닌 "dev"로 자동 병합합니다.

여기에 이미지 설명을 입력하십시오

참고 URL : https://stackoverflow.com/questions/9135913/merge-pull-request-to-a-different-branch-than-default-in-github

반응형