이것은 이전 질문에서 분기되었습니다. 오픈 소스 프로젝트에 기여할 수있는 사람을 선택할 수 있습니까?
이전에 오픈 소스 소프트웨어 작업을 해본 적이없고, 이번 여름에 가끔 App Store에 출시 할 나만의 미니 애플리케이션을 개발 한 적이 있습니다. 저는 대부분의 오픈 소스 방식에 익숙하지 않습니다. 개발 구조가 설정되어 있습니다 (포크, 메인 저장소 …).
팝업 된 한 가지는 풀 요청에 대한 언급이었습니다. 풀 요청이 정확히 무엇입니까?
답변
pull request라는 용어는 git
에서 유래되었으며, 여기서 git pull
명령은 다른 저장소를 로컬 저장소에 병합하는 데 사용됩니다. 따라서 다른 사람이 git
저장소의 사본을 가지고 있고 원하는대로 변경하는 경우 통합하기 위해 저장소에서 변경 사항을 pull
요청할 수 있습니다. “pull
를 요청하므로”pull 요청 “이라는 용어가 사용됩니다.
요즘 대부분의 사용자에게이 기능은 일종의 그래픽 인터페이스 뒤에 숨겨져 있습니다. 예를 들어 Github 또는 Bitbucket 또는 Gerrit를 통해; 그러나 원칙은 동일합니다. 누군가가 귀하의 저장소를 복사하고 변경 한 다음 귀하가 “검토 한 후에 귀하의 사본에 병합하도록 요청합니다.
댓글
- Git에는
git request-pull
명령도 있습니다. 이렇게하면 보낼 수있는 서면 메시지가 생성됩니다. 다른 사람이git pull
를 사용하여 자신의 작업을 소프트웨어 사본에 통합하도록 초대합니다. - 초보자에게는 더 명확하게 설명 할 수 없습니다.
답변
분산 버전 제어 시스템이있는 경우 모든 개발자는 전체 저장소의 사본을 가지고 있습니다. 소프트웨어를 변경하면 로컬 저장소에 변경 사항을 커밋합니다. 다른 저장소에 이러한 변경 사항이 있어야하는 경우 변경 사항을 푸시 할 수 있습니다 (변경 사항을 권한이있는 다른 저장소로 이동). 쓰기) 또는 변경 사항을 가져 오거나 m 다른 저장소). 많은 프로젝트에 메인 저장소가 있기 때문에 pull-request는 관리자가 변경 사항을 가져 오는 요청입니다.
조금 읽기 , 한 사용자가 프로젝트의 주요 분기에 자신의 패치를 포함하도록 요청하면이 용어가 비 분산 버전 관리에도 사용되는 것 같습니다. 특히 github에 대한 또 다른 읽기 : https://help.github.com/articles/using-pull-requests/
Answer
풀 요청은 버전 제어 시스템과 관련이 있습니다. 여러 사용자 집합이있을 수 있습니다.
- 관리자 / 소유자
- 참여자
- 테스터
원하는 각 사용자는 서로 다른 작업을 수행 할 수 있습니다.
- 관리자 / 소유자
이 사람들은 믿을 수 있습니다. 원할 때 원하는 것을 커밋 할 수있는 전체 권한을 포함하여 문제의 저장소에 대한 전체 액세스 권한을 가질 수 있습니다. - 참여자
이들은 인터넷에서 온 임의의 사람들 일 수 있습니다. 그들은 회사에서 더 적은 사람 일 수 있습니다. 어느 쪽이든, 당신은 아마도 그들이 코드베이스에 직접 커밋하는 것을 원하지 않을 것입니다-당신은 그들의 변경 사항을 먼저 검토하고 싶을 것입니다.
이것이 pull 요청이 들어오는 곳입니다. 허용하는 대신 기여자가 코드베이스를 직접 변경하면 리포지토리를 포크 하고 로컬 머신에 복사본을 만들고 개발합니다. 작업이 완료되면 업데이트 된 내용이 포함 된 풀 요청을 생성 할 수 있습니다. 암호. 그런 다음 상위 그룹의 누군가가 변경 사항을 검토하여 표준에 대한 정확성과 공모 성을 검토하고 준수하는 경우 변경 사항을 병합 할 수 있습니다.
댓글
- 주제에서 약간 벗어 났지만 자신의 변경 사항을 직접 병합 할 수 가능한 사람도 동료가 검토 할 수 있도록 PR을 제출해야합니다. '이 (가)있는 팀에서 일한다고 가정합니다. 그렇지 않다면 ' '가 CodeReview 은입니다.
- 좋습니다. 따라서 단계는 다음과 같습니다. 메인 리포지토리를 포크하고, PC로 가져오고, 수정하고, 커밋하고, 포크 된 브랜치로 푸시 한 다음, 관리자에게 포크 브랜치에서 메인 리포지토리로 가져와 병합하도록 요청합니까?
Answer
Pull 요청 (PR)은 공개 개발 프로젝트에 기여를 제출하는 방법입니다. 개발자가 동료 검토 후 프로젝트의 기본 저장소에 포함 할 수 있도록 외부 저장소에 커밋 된 변경 사항을 요청할 때 발생합니다.
출처 : What Is A Pull Request? at OSS Watch
간단한 예 오픈 소스 리포지토리를 복제 / 포크하고 일부 변경 / 커밋을 수행하고 변경 사항을 메인 리포지토리에 병합하려면 모든 커밋을 하나의 논리적 조각으로 그룹화하여 풀 요청을 보내야합니다. 다른 개발자가 검토합니다.
이것은 표준 커밋 및 푸시보다 약간의 이점이 있습니다. 확인해야 할 추가 눈이 있고 일반 / 숨겨진 문제 / 실수 는 실제 변경 전에
몇 가지 PR 예보기 :
- GitHub 여기 또는 여기
- Chromium 코드 리뷰 (pull 요청과 동일)