다른 사람과 협업하여 코드를 작성하고 하나의 소스를 관리하기 위해 우리는 Github을 사용한다. Pull Reuqest를 하면 Github에서는 기존 브랜치에서 변경된 내용을 확인할 수 있다. 새로운 동료가 github 레포지토리에서 소스를 내려받아서 수정 후 Pull Reuqest를 하는 과정을 Jetbrain IDE 중 하나인 WebStorm 으로 진행해보자.
Github에서 Pull Request를 하는 도구로는 Github.com, Github Desktop, Github CLI, IDE(Jetbrain, VS Code), 등 다양하다.
프로젝트 체크아웃 하기(clone)
프로젝트를 로컬 환경에서 작업을 하기 위해서는 우선 소스를 내려 받아서 로컬에서 동작할 수 있도록 세팅을 해야 한다.
- 메인 메뉴에서 Git | 복제... 를 선택
- 왼쪽 메뉴에서 Github 을 선택
- 로그인이 되어 있지 않다면 Github 로그인 진행
- 원하는 프로젝트를 선택
- 경로 필드에서 원하는 디렉토리 위치 선택
- 복제 버튼 선택
브랜치 만들기
로컬 환경에서 복제한 프로젝트로 소스를 수정해보자. 우선 수정을 진행하기에 앞서 새로운 브랜치를 생성해줘야 한다. 브랜치는 새로운 기능을 개발할 때 메인 개발 라인에서 갈라져 나와서 작업을 할 수 있게 해주는 강력한 메커니즘이다.
메인 메뉴에서 Git | 새 브랜치... 또는 왼쪽 하단의 Git 아이콘을 선택 후 ➕ 버튼으로 새로운 브랜치 생성(eg. feature
)
아래 사진과 같이 브랜치 체크아웃을 선택 하였으면 현재 작업 브랜치가 feature으로 변경되어 있을 것이다.
소스 수정하기(커밋)
자 이제 새로운 브랜치를 만들었으니 소스를 커밋해보자.
왼쪽 상단의 메뉴에서 커밋 아이콘을 선택하고 변경사항에 대한 메시지를 작성 후 커밋 버튼을 누른다.
Pull Request 요청하기
이제 새로운 브랜치에 커밋이 쌓였으므로 Pull Request를 생성해보자.
메인 메뉴에서 Git | Github | 풀 리퀘스트 생성... 또는 왼쪽 메뉴에서 풀 리퀘스트 아이콘 선택 후 ➕ 버튼으로 풀 리퀘스트를 생성한다.
리뷰어: 승인하기
풀 리퀘스트를 하면 리뷰어가 변경사항을 확인하고 덧글을 달거나 수정을 요청하는 피드백 루프를 거친다. 확인이 완료된 내용은 승인을 하면 된다.
리뷰어: 병합하기
확인된 코드를 이제 다시 main
브랜치로 합치기 위해서는 merge
를 해야한다. main
브랜치와 충돌이 나지 않는다면 아래 그림과 같이 merge pull request
버튼이 보이고 버튼을 눌러주면 된다.
병합된 결과 내려 받기
내가 요청한 풀 리퀘스트가 main
브랜치로 병합이 완료되면 내 로컬 환경으로 변경사항을 내려 받아야 한다.
main
브랜치로checkout
하기(git checkout main
)- 원격 저장소에서 내려받기(
git pull origin main
) - 풀 리퀘스트에 사용한 브랜치 삭제하기(
git branch -D feature
)
만약
feature
브랜치에서 추가적으로 작업하고 있는 내용이 있고 그것을 보관하고 싶은 경우commit
을 하거나stash
를 통해 임시 저장해야 한다.
결론
Pull Request를 하는 방법은 여러가지가 있지만 내가 사용하고 있는 IDE를 떠나지 않고 바로 작업하면 작은 편리함을 얻을 수 있다. 이 글에서는 WebStorm을 이용하였고 VS code와 같은 툴도 지원을 하니 자신이 사용하는 IDE 별로 사용법을 익히면 된다.