풀 요청시 브랜치 이름 바꾸기


101

Github에서는 프로젝트에 기능을 추가하기 위해 pull 요청을 할 수 있습니다. 하나의 기여는 요청이 수락되면 프로젝트의 마스터 브랜치 (또는 유사한 브랜치)로 병합 될 브랜치에 있어야합니다.

이제 Github에 풀 요청을 제출했고 내 기여는 patch-1. 지점 이름을 로컬에서 수정할 수 있습니다.

git branch -m patch-1 newname

그리고 원칙적 으로이 답변 에있는 지침에 따라 Github의 분기 된 저장소에서 이름을 바꿀 수도 있습니다 . 이것은 실제로 이전 브랜치를 제거하고 patch-1다른 이름으로 리 푸시함으로써 수행됩니다 newname.

patch-1풀 리퀘스트를 구성 할 때 Github의 분기 된 리포지토리에서 브랜치의 이름을 바꿀 수 있습니까? 아니면 풀 리퀘스트 관리에 문제가 있습니까?

Github의 분기 저장소에서 해당 분기가 풀 요청 인 경우 분기 이름을 바꿀 수있는 방법이 있습니까?

답변:


117

제공 한 링크에서 알 수 있듯이 git에서 원격 브랜치의 "이름 변경"은 실제로 브랜치를 삭제 한 다음 동일한 커밋 해시를 사용하지만 새 이름을 가진 새 브랜치를 푸시하는 것입니다. 패치 -1 브랜치에 대한 풀 요청이 열려있는 경우 해당 브랜치를 삭제하면 풀 요청이 닫힙니다.

따라서 분기를 삭제하고 끌어 오기 요청을 제거하지 않고는 끌어 오기 요청이 열린 상태에서 분기의 이름을 바꿀 수 없습니다. 그러나 새로운 이름으로 새 브랜치를 푸시하고 새로운 풀 요청을 생성하는 것을 막을 수는 없습니다.


186
그렇게하지 않는 한 가지 이유는 기존 PR에 대한 논의를 잃는 것입니다.
Johnny Everson

6
PR에서 소스 브랜치의 이름을 바꾸는 데 왜 그렇게 엄격한 제한이 있는지 이해하지 못합니다. 같은 성가신 bahaviour가 bitbucket에 존재합니다. 또 다른 접근 방식은 PR을 편집하고 소스 분기를 다른 분기로 변경하는 것입니다. "소스 브랜치를 변경하면 어쨌든 새로운 PR입니다"라고 말할 수 있습니다. 기술적으로 예,하지만 개발자가 완전히 다른 브랜치에서 업스트림을 설정 한 다음 git push -f. PR은 완전히 새로운 코드로 업데이트되고 여전히 "동일한"PR입니다.
L. Holanda 2019

31

짧은 답변:

아니

대체 접근 방식 :

  1. 새 (이름이 변경된) 브랜치로 새 PR을 엽니 다.
  2. 새 PR을 참조하는 이전 PR을 닫습니다 (예 : #new_pr_id를 위해 닫힘).
  3. 새 PR의 설명을 수정합니다 (예 : #old_pr_id를 대체 함).
  4. (선택 사항) 기존 PR에 대한 관련 토론에 대한 의견을 작성하십시오.

노트 :

빌드 시스템에 티켓 ID로 끝나는 지점의 이름이 필요했기 때문에 PR을 구성하는 원격 지점의 이름을 변경해야했습니다. 그러나 PR은 공식 티켓 생성 (사양에서) 이전에 열렸으며 귀중한 토론이 포함되어있었습니다. 설명 된 접근 방식은 빌드 시스템을 작동시킬 수있는 유일한 방법이며 정보를 잃지 않았습니다 (추적하는 추가 단계가 있었음에도 불구하고).


9
일반적으로 분기가 병합 된 후 삭제된다는 점을 감안할 때, 역사적 논의를 추적 할 목적으로 이전 PR을 참조하는 새 PR의 오버 헤드를 추가하는 것보다 잠시 동안 부정확 한 이름을 "용인"하는 것이 좋습니다.
Neo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.