풀 요청을 시작하거나 마스터에서 로컬 병합 커밋을 수행하는 것이 더 낫습니까?


12

나는 지금 꽤 오랫동안 GitHub를 사용해 왔으며 일반적으로 기능 분기를 푸시 한 다음 직접 병합 요청을 시작하는 데 사용했습니다. 분기를 병합 한 위치를 추적하는 데 도움이되었습니다.

그러나 최근에 Git의 작동 방식에 대해 점점 더 많이 읽었으며 분기를 병합 할 때 병합 커밋을 사용하여 참조 할 수 있음을 깨달았습니다.

마스터에 기능이 분기를 병합 때, 어떻게해야합니까 :
수행 병합 커밋 마스터 한 후 상류 밀어 또는 로컬 지점을 누르고 끌어 오기 요청을 시작?

2 인 팀에 대한 풀 요청 소개 를 읽었습니다. 내 요청을 병합 하시겠습니까? 작업 프로젝트에 이명과 흐름 뭐죠공식의 repo 또는 내 포크 지점에서해야 I 열린 풀 요청? 그러나 그들 중 누구도 내가 찾고있는 것에 대답하지 않는 것 같습니다.


2
그 대답에서 정확히 무엇을 느끼고 있지 않습니까?
RubberDuck

첫 번째는 풀 요청이 피어 리뷰 대상이라는 의미에서 그것에 대해 이야기합니다. 두 번째는 워크 플로우를 제공합니다. 세 번째는 관련이 없습니다.
Ashhar Hasan

1
모범 사례 또는 좋은 git history view 를 유지하는 방법 에서 이것을보고 있습니다.
Ashhar Hasan

1
PR을 병합 할 때 지점을 로컬로 병합하여 그렇게합니다. 이를 통해 병합을 깨끗하게 적용하고 결과를 게시하기 전에 테스트를 다시 실행할 수 있습니다. GitHub의 풀 요청은이 워크 플로우의 공식 화일 뿐이며, Git 자체에는 PR 개념이 없습니다.
amon

2
PR이 병합되면 마스터에서 병합 커밋을 생성하므로 이것이 git history와 차이가 있다고 생각하지 않습니다. 따라서 커맨드 라인과 Github UI 사이에서 개인적인 선호도를 제외하고는 다른 것을 사용해야 할 이유가 없다고 생각합니다.
Ixrec

답변:


15

git-merge mechanism : 마스터에서 while을
사용 git merge feature하면 분기 feature를 병합 하고 git history에서 분기를 빨리 전달할 수없는 경우를 master생성합니다 merge-commit. 강제 merge-commit로 작성 하려면 --no-ff옵션을로 사용하십시오 merge.

풀 요청 병합 메커니즘 :
GitHub에서 풀 요청을 시작 GitHub Issue하면 PR을 병합하기 전에 커밋과 대화하고 토론 할 수 있는 위치 가 생성 됩니다. PR은 GitHub에서 병합 될 때와 동일합니다 git merge feature.

어떻게해야합니까?
따라서 역사에 관한 한, 둘 사이에는 차이가 없습니다.
기여가 이루어지는 한, 기여자들은 두 상황에 대해 다른 것을 가질 필요가 없습니다. 그들은 동일합니다 (좋은 작은 채팅 제외).

모범 사례 : 모범 사례
를 찾을 수 없었지만 논리에 따르면 저장소에 한 사람 만있는 경우 PR은 큰 도움이되지 않습니다.

@lxrec와 @amon은이 결론에 도달하는 데 도움이되었습니다.


5
팁 : git merge"빨리 감기"를 수행 할 수있는 경우 병합 커밋을 기록하지 못할 수 있습니다. 병합 커밋을 강제 실행하려면 --no-ff옵션을 추가하면 됩니다.
amon December

githuib.com에서보다는 git-merge를 사용하는 것을 선호합니다 .github.com에서 그런 일을 해야하는 경우 마스터 브랜치에서 직접 수행하지 않는 것이 좋습니다. 프로덕션에 사용하기 전에 준비 모드로 설정해야합니다.
Ciasto piekarz

5

으로 Ashhar가 말했다, 기술적으로 역사 - 현명한 차이가 없습니다. 소규모 팀이있는 프로젝트의 경우 PR을 생성하는 추가 단계 대신 직접 병합하는 것이 좋습니다. 그러나 기능을 검토 / 피드백해야하거나 WIP이고 둘 이상의 사람이 작업 할 경우 PR을 열고 PR 설명에 작업 목록을 추가하는 경향이 있습니다.

참고 git merge마스터에 대한 변경이없는 경우 사용할 수 있도록, 빨리 감기 사용할 수 있습니다 git merge --no-ff. 나는하지 않는 경향이 있습니다.

요약하면 토론이 필요한 경우에만 PR을 사용하십시오. 그렇지 않으면 직접 병합하십시오.


1
풀 요청에 대한 토론과 피드백은 팀원뿐만 아니라 자동화 된 소스에서 나올 수 있다는 점도 언급 할 가치가 있습니다. CI 서버를 설정 한 경우 빌드 및 테스트 결과를 제공 할 수 있으므로 마스터에서 빌드를 중단시키는 항목을 병합하지 않습니다.
Eric
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.