풀 요청 대 병합 요청 요청과 병합 요청의 차이점은 무엇입니까? Github에서는 풀

풀 요청과 병합 요청의 차이점은 무엇입니까?

Github에서는 풀 요청이고 GitLab에서는 병합 요청입니다. 둘 사이에 차이점이 있습니까?



답변

GitLab의 “병합 요청” 기능은 GitHub의 “풀 요청” 기능 과 동일 합니다. 둘 다 다른 브랜치 나 포크에서 변경 사항을 브랜치로 가져와 기존 코드와 변경 사항을 병합하는 수단입니다. 코드 검토 및 변경 관리에 유용한 도구입니다.

GitLab기사 는 기능의 이름을 지정하는 차이점에 대해 설명합니다.

병합 또는 풀 요청은 git 관리 응용 프로그램에서 생성되며 할당 된 사람에게 두 분기를 병합하도록 요청합니다. GitHub 및 Bitbucket과 같은 도구는 첫 번째 수동 작업이 기능 분기를 가져 오는 것이기 때문에 이름 풀 요청을 선택합니다. GitLab 및 Gitorious와 같은 도구는 이름 병합 요청을 선택합니다.이 요청은 양수인이 요청한 최종 작업이기 때문입니다. 이 기사에서는이를 병합 요청이라고합니다.

“병합 요청”을 git merge명령 과 혼동해서는 안됩니다 . “풀 요청”이 git pull명령 과 혼동되어서는 안됩니다 . 두 git명령 모두 끌어 오기 요청과 병합 요청에서 뒤에서 사용되지만 병합 / 풀 요청은이 두 명령보다 훨씬 광범위한 주제를 나타냅니다.


답변

그들은 같은 기능입니다

병합 또는 풀 요청은 git 관리 응용 프로그램에서 생성되며 할당 된 사람에게 두 분기를 병합하도록 요청합니다. GitHub 및 Bitbucket과 같은 도구는 첫 번째 수동 작업이 기능 분기를 가져 오는 것이기 때문에 이름 풀 요청을 선택합니다. GitLab 및 Gitorious와 같은 도구는 이름 병합 요청을 선택합니다.이 요청은 양수인이 요청한 최종 작업이기 때문입니다. 이 기사에서는이를 병합 요청이라고합니다.

-https : //about.gitlab.com/2014/09/29/gitlab-flow/


답변

내 관점에서, 그들은 같은 활동을 의미하지만 다른 관점에서 의미합니다.

Alice가 Bob의 저장소 B에서 분기 된 저장소 A를 커밋합니다.

Alice가 변경 사항을 B로 “병합”하려는 경우 실제로 Bob은 이러한 변경 사항을 A에서 “풀”하기를 원합니다.

따라서 Alice의 관점에서는 “병합 요청”이고 Bob은이를 “풀 요청”으로 봅니다.


답변

갈등 관리 측면에서 미묘한 차이가 있습니다. 충돌이 발생하면 Github의 풀 요청으로 대상 분기 에서 병합 커밋이 발생합니다 . Gitlab에서 충돌이 발견되면 수정 사항은 소스 브랜치 의 병합 커밋에서 이루어집니다 .

https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html을 참조 하십시오

“GitLab은 소스 브랜치에서 대상 브랜치로 자동 병합되지 않는 병합 커밋을 생성하여 충돌을 해결합니다.이를 통해 변경 사항이 병합되기 전에 병합 커밋을 검토하고 테스트하여 의도하지 않은 변경 사항이 검토 또는 중단없이 대상 브랜치에 진입하는 것을 방지합니다. 빌드. “


답변

GitLab 12.1 (2019 년 7 월)에는 다음과 같은 차이점이 있습니다.

기밀 문제에 대한 요청 병합

보안 취약점과 같은 기밀 문제를 논의, 계획 및 해결할 때 Git 저장소가 공개되어 있기 때문에 오픈 소스 프로젝트의 효율성을 유지하는 것이 특히 어려울 수 있습니다.

https://about.gitlab.com/images/12_1/mr-confidential.png

12.1부터는 기밀 병합 요청 만들기 버튼을 사용하여 간소화 된 워크 플로 내에서 공개 프로젝트의 기밀 문제를 해결할 수 있습니다.이 기능을 사용하면 프로젝트의 개인 분기에 병합 요청을 만들 수 있습니다.

문제 58583의기밀 문제 “를 참조하십시오 .

비슷한 기능이 GitHub에 존재하지만 ” 관리자 보안 권고 ” 라고하는 특수한 개인 포크 작성이 포함됩니다 .


답변

이전 답변에서 언급했듯이 둘 다 거의 같은 목적으로 사용됩니다. 개인적으로 git rebase 및 merge 요청을 좋아합니다 (gitlab에서와 같이). 검토 자 / 유지 업체의 부담을 덜어주고 병합 요청을 추가하는 동안 기능 분기에는 기능 분기가 작성된 후 기본 분기에서 수행 된 모든 최신 커밋이 포함됩니다. 다음은 rebase를 자세히 설명하는 매우 유용한 기사입니다.
https://git-scm.com/book/en/v2/Git-Branching-Rebasing


답변