반응형
pull request이란 무엇입니까?
pull request는 공개 개발 프로젝트에 기여하는 방법입니다. Git과 같은 분산 버전 제어 시스템 (DVCS)을 사용하여 프로젝트에 컨트리뷰션을 제출하는 것이 선호되는 방법입니다. pull request은 개발자가 프로젝트의 기본 저장소에 포함되도록 외부 저장소에 커밋된 변경 사항을 요청할 때 발생합니다.
“pull request”은 워크 플로 방법이며 버전 제어 시스템 자체의 기능이 아닙니다. 이 문서는 Git 버전 제어 시스템과 GitHub 호스팅 사이트를 예로 들어, 풀 요청에 대한 간단한 개요와 요청 작성 방법을 알아보겠습니다.
변경
DVCS를 사용하여 오픈 소스 프로젝트에 기여할 때는 로컬 개발 환경에 소스 코드 저장소의 사본 또는 "clone"이 있습니다. 여기에서 변경 내용을 작성하고 로컬로 커밋하여 수정 내역을 만들 수 있으므로 필요한 경우 변경 내용을 추적하고 쉽게 롤백할 수 있습니다. 로컬로 커밋된 변경 사항은 다음 릴리스에 포함되도록 업스트림 프로젝트에 제출할 수 있습니다.
프로젝트 관리자가 변경 사항을 고려할 가치가 있다고 기여자가 만족하면 pull request이 발생합니다.
pull request 제기
pull request을 해결하는 방법은 프로젝트마다 다를 수 있으므로 자세한 내용은 프로젝트 설명서를 확인하십시오. 그러나 GitHub를 사용하는 프로젝트는 종종 pull request을 처리하기 위해 GitHub의 자체 도구를 사용합니다. GitHub로 풀 요청을 제출하는 일반적인 워크 플로우는 다음과 같습니다.
1. GitHub 계정 생성 / 로그인
2. 기고 할 코드 리포지토리 페이지로 이동하십시오 (“업스트림”)
3. 저장소를 "fork"합니다 (GitHub 계정에 clone이 생성됨)
4. 자식 clone으로 fork의 로컬 clone 만들기
5. 변경 사항에 대한 로컬 지점 만들기
6. 설명 커밋 메시지를 포함하도록 git commit을 사용하여 변경하고 로컬 브랜치에 커밋하십시오.
7. git push를 사용하여 지점을 GitHub fork로 푸시하십시오.
8. 업스트림 리포지토리 페이지로 이동하여 pull request 탭으로 이동
9. "New Pull Request"버튼을 클릭하십시오
10. 제출하려는 지점을 선택하고 변경 내용과 수행 방법을 설명하는 변경 사항에 대한 요약을 작성하십시오.
다른 프로젝트는 github 외부의 풀 요청을 처리 할 수 있습니다. 예를 들어 Moodle은 풀 요청을 Jira 버그 추적기의 티켓으로 관리합니다. 그러나 프로젝트에서 코드에 액세스 할 수 있도록 변경 사항을 공개적으로 액세스 할 수있는 저장소로 변경해야하므로 GitHub 또는 Bitbucket과 같은 사이트에 계정을 갖는 것이 좋습니다.
pull request 적용
컨트리뷰터가 pull request을 하면 프로젝트 관리자는 이를 평가하고 적절한 경우 이를 업스트림 리포지토리에 병합해야합니다. 프로젝트마다 pull request을 검토하고 적용하는 방법이 다릅니다. 그러나 모두 공통적인 단계가 있습니다.
- 변화의 가치를 빠르게 평가
- 기고자에게 신속하고 정확한 피드백을 준비합니다 (적절한 경우 다시 제출 요청).
- 변경된 코드를 확인하고 이에 대해 테스트 스위트를 실행하십시오.
- 기고자에게 문제점을 보고 하고 다시 제출을 요청하십시오.
- 업스트림 코드로 변경 사항을 가져옵니다.
숙련된 개발자는 diff (텍스트 변경 사항의 텍스트 표현)를 읽고 실제로 코드베이스에 적용하지 않고도 그 의미를 이해할 수 있습니다. GitHub는 이를 용이하게하기 위해 각 pull request을 설명하는 diff보기를 제공합니다. 이를 통해 기고자에게 빠른 피드백을 쉽게 제공 할 수 있습니다. 프로젝트 관리자가 변경 사항이 확실한 기여로 보인다고 생각하면 해당 지역 개발 환경에 pull request되는 지점을 확인하고 테스트합니다. 좋은 기여는 이미 광범위한 테스트를 거쳤기 때문에 관리자에게는 간단한 문제 일 것입니다. 그러나 실수가 발생할 수 있으므로 항상 추가 테스트를 수행해야합니다.
pull request이 승인되면 관리자는 GitHub, git merge 또는 git pull 명령을 사용하여 업스트림 리포지토리의 요청된 분기로 요청을 가져옵니다. 그러면 업스트림 저장소의 공개 버전에서 코드를 사용할 수 있습니다. 이 변경 사항이 이슈 트래커의 티켓과 관련이 있으면 티켓을 업데이트해야합니다. GitHub를 사용하면 커밋 메시지에서 문제를 참조하여 이 문제가 자동으로 발생합니다.
반응형
'SW > Git' 카테고리의 다른 글
git format-patch : 패치 보내는 방법, 개념 (0) | 2019.10.11 |
---|---|
squash : pull request을 병합하는 완전히 새로운 방법 : 개념 (0) | 2019.10.10 |
git pusfh.default option : matching 과 simple 차이점 관련 (0) | 2019.05.10 |
Linux용 Git Client GUI 소개 및 추천 (0) | 2019.01.12 |
Windows용 Git GUI 클라이언트 소개 및 추천 (0) | 2019.01.11 |