Github에서 풀 요청을 기본값과 다른 브랜치로 병합
풀 요청은 Github에서 호스팅되는 리포지토리로옵니다. 기본적으로 master
지점으로 병합됩니다 .
변경 사항을 병합 할 지점을 변경할 수있는 방법이 있습니까?
2016 년 8 월 15 일 현재 GitHub에서는 GUI를 통해 풀 요청의 대상 분기를 변경할 수 있습니다. Edit
제목 옆의을 클릭 한 다음 드롭 다운에서 지점을 선택하십시오.
이제 열린 풀 요청의 기본 분기를 변경할 수 있습니다. 풀 요청을 생성 한 후 풀 요청의 변경 사항이 다른 브랜치와 비교되도록 기본 브랜치를 수정할 수 있습니다. 올바른 기본 분기로 새 분기를 열지 않고 원래 풀 요청의 기본 분기를 변경하면 소중한 작업과 토론을 유지할 수 있습니다.
제출자는 풀 요청을 발행 할 때이를 변경할 수 있지만 일단 발행하면 변경할 수 없습니다.
반면에 수동으로 분기와 푸시를 병합 할 수 있습니다. 이는 잘못 타겟팅 된 풀 요청에 대해 반 정기적으로 수행합니다.
풀 요청의 구성 요소 작업에 유용한 hub
gem을 찾을 수 있습니다 .
그 보석은 수동 프로세스를 마무리합니다.
- 로컬 체크 아웃에 포크 리모컨 을 추가하십시오 .
- 리모콘을 가져 오십시오.
git checkout ${target_branch} && git merge ${remote}/${branch}
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"로 자동 병합합니다.
'IT story' 카테고리의 다른 글
VB.NET과 C #의 값에 대해 null을 검사하는 데 차이가있는 이유는 무엇입니까? (0) | 2020.08.06 |
---|---|
Android Studio에서 테스트를 작성하려면 어떻게해야합니까? (0) | 2020.08.06 |
CORS를 악용하기 위해 악성 코드가 "Origin"헤더를 스푸핑하는 것을 막는 것은 무엇입니까? (0) | 2020.08.06 |
내부 함수를 가져 오는 것은 파이썬입니까? (0) | 2020.08.06 |
Java 스트림에서 flush ()의 목적은 무엇입니까? (0) | 2020.08.06 |