[Git & Git Hub] pull request

정진우·2024년 4월 23일
0

Git & Git Hub

목록 보기
7/11
post-thumbnail

pull request (PR)

Pull Request는 개발자가 자신이 작업한 코드를 다른 사람이 검토하도록 요청하는 방법입니다. 이 요청이 승인되면, 해당 코드는 프로젝트의 메인 브랜치에 병합됩니다.

pull request의 주요 목적

  1. 코드 품질 향상 : 버그, 문제점, 코드 스타일 문제 식별 및 해결, 가독성, 유지 관리성, 테스트 코드 작성 개선
  2. 협업 개선 : 코드 변경 사항 투명성 증대, 소통 및 협력 촉진, 코드 이해 및 영향 파악 도움, 지식 공유 및 학습 촉진
  3. 통합 문제 감소 : 충돌 및 기타 문제 식별 및 해결, 테스트 수행 및 작동 확인, 배포 문제 감소, 통합 원활성 보장
  4. 코드 변경 기록 유지 : 논의, 피드백, 결정 추적, 변경 사항 역사 확인 및 이전 버전 복원, 진행 상황 파악 및 코드 베이스 변경 추적
  5. 프로젝트 진행 상황 파악 : 작업 진행 및 완료 확인, 의사소통 개선 및 일정 관리 도움, 검토 및 병합 단계 확인

pull request의 작동 방식

1. Fork

  • 원본 저장소(Upstream Repository) 를 자신의 원격 저장소(Origin Repository)로 Fork 한다.

2. clone, remote 설정

  • fork로 생성한 Repository에서 clone or download 버튼을 누르고 표시되는 URL을 복사한다.
git clone [원격 저장소의 URL 주소]
# 원격 저장소의 파일을 로컬 작업 디렉토리로 복제합니다.
  • 원본 저장소를 원격 저장소로 연결 : 포크된 저장소를 원본 프로젝트와 동기화된 상태로 유지하기 위해 원본 저장소를 원격 저장소로 추가할 수 있습니다. 이를 통해 원본 저장소에서 변경 사항을 가져와 필요할 때 포크된 저장소에 병합할 수 있습니다.
git remote add upstream [원본 저장소 URL]
# 원본 프로젝트 저장소를 원격 저장소로 추가합니다.
  • 원격 저장소에 원본 저장소가 연결되었는지 확인합니다.
git remote -v
# 현재 프로젝트에 설정된 모든 원격 저장소의 리스트를 보여줍니다.

3. branch 생성

로컬 저장소에서 코드를 수정하거나 추가하는 작업은 branch를 새로 만들어서 진행합니다.

git switch -c develop 
# develop 이라는 브랜치를 생성한 후, 해당 브랜치로 이동합니다.

4. 수정 작업 후 add, commit, push

  • 에디터를 사용해 코드를 수정하거나 추가합니다.
  • 수정 사항이 완료되면 add, commit, push를 사용하여 원격 저장소(Origin Repository)에 수정 사항을 업데이트합니다.
git add PR.txt
# 변경 사항을 Staging Area에 추가

git commit -m "commit"
# Staging Area에서 변경 사항을 `commit`합니다.
# 변경 사항과 작업을 요약한 커밋 메시지를 제공해야 합니다. 

git push origin develop
# 로컬 변경 사항을 원격 저장소로 푸시합니다.
# 원격 저장소의 이름을 지정하지 않는 경우 origin으로 기본 설정 됩니다.

5. Pull Request 생성

  • push를 진행한 후 원격 저장소를 확인하면 Compare & pull request 버튼이 활성화된 것을 확인할 수 있습니다. 이 버튼을 클릭하여 내용을 작성한 후 Create pull request를 진행합니다.

6. Merge Pull Reqest

  • 원본 저장소의 관리자는 PR을 받은 후 코드 변경 내역을 확인하고 병합할지 여부를 결정한다.

7. Merge 이후 동기화 및 branch 삭제

  • Merge가 완료된 후에는 원본 저장소(Upstream Repository) 의 최신 변경 사항을 자신의 원격 저장소(Origin Repository) 와 동기화합니다.
git pull upstream
# 원본 저장소의 최신 변경 사항을 자신의 원격 저장소에 병합합니다.
  • 작업을 진행했던 로컬 저장소의 branch를 삭제한다.
git branch -d develop
# 로컬에서 지정된 브랜치를 삭제합니다.
  • 추가 작업이 필요한 경우, git pull upstream 명령어를 사용하여 원본 저장소와 동기화를 진행하고, 그 후 3~7번 단계를 반복합니다.

참고

profile
내가 바뀌지 않으면 아무것도 바뀌지 않는다 🔥🔥🔥

0개의 댓글