* 협업을 위한 작업(commit)관리
- 협업에서 자주 일어나는 시나리오 상상하며 내 작업을 반영해달라고 요청하는 PR과 commit을 되돌리고 임시로 저장하는 방법 배우기
PR (Pull Request)이란?
자신의 작업내역을 바로 merge하지 않고, 프로젝트에 내 작업(branch)를 merge해달라고 요청하는 것을 말한다.
실전 사용 회화 :
* (오픈소스에서) 프로젝트 제안 사항이 있으면 PR 날려주세요.
* (회사에서) OO씨, PR 날려주세요. 코드 리뷰해드릴게요.
PR 실습
1. merge하려는 branch로 들어가 다음과 같은 버튼을 누른다
2. 창이 바뀌면서 상단에 표시되는 것을 보면 3가지를 확인 할 수 있다.
① 합쳐질 브랜치 ② 합칠 브랜치 ③ Merge 가능여부
그리고 무엇을 추가했는지와 적절한 메시지 혹은 양식에 맞게 써서 풀리퀘스트를 생성한다.
3. PR을 날리면 아래와 같이 커뮤니티 기능을 사용할 수 있으며 PR이 생성된 상태에서 merge 전까지 추가된 commit도 이 대화에 나타난다
4. merge pull request를 눌러 merge한다
(conflict가 존재하면 다른 메세지가 뜬다)
5. 바로 이 영역이 바뀌며 merge 메세지를 입력할 수 있게 된다.
메세지 확인하고 버튼 클릭
6. 아래와 같이 보라색으로 바뀌며 해당 브랜치를 지울건지 묻는다.
이 자리에 생기는 restore 버튼으로 다시 살릴수도 있다.
7. 소스트리로 와서 패치를 누르면 리모트 내용이 보여진다 (마치 새로고침처럼)
pull처럼 로컬에 반영하는게 아님
8. 깃헙에서 main으로 merge했으니 main에 적용하기 위해 main에 checkout한다.
현재 로컬 브랜치는 원격 브랜치보다 3개 뒤쳐저있다.
pull로 당겨오면
합쳐진 것을 확인 할 수 있으며 origin/main 네임택 부분은 PR 때문에 생긴건데 이것도 푸쉬해주고 나면
이렇게 네임택이 나란히 따라오게 된다.
9. 사용을 다한 브랜치는 지워준다.
내 작업을 다른 리포지토리에 PR을 날리는 실습
fork (포크)란?)
repo의 사용권한이 다른사람에게 있을때 (ex. 오픈소스) 프로젝트 제안할 때는 일단 프로젝트의 내용을 내 공간으로 가져와야하는데 fork란 원본 소스코드를 복사해 새로운 독립적인 소프트웨어로 개발하는 것을 말한다.
이름 왜 포크가 되었냐 하면 하나의 길에서 여러갈래로 나오기 때문이다. 우리가 사용하는 포크처럼 말이다.
내가 주인이 아닌 다른 repo에 PR을 하려면 fork(포크, 일종의 프로젝트 복사)가 필요하다.
실습)
1. PR날릴 repo에 참여의사 댓글을 단다
2. 포크 버튼을 누른다.
3. 포크를 생성한다
4. 나의 리포지토리에 포크를 생성되면 앞에 포크 표시와 바로 아래에 어디서 포크를 해왔는지 알수 있다.
5. 이 repo를 clone해 온 다음 거기서 작업을 하고 push를 한 다음 PR을 날리는 단계로 진행된다.
이제 repo를 clone하는 것 부터 시작해보자.
6. 작업할 브랜치를 생성한다. (브랜치명 : 기능/이슈번호_특징
작업을 수정하고 커밋한 후에 푸쉬까지 진행한다
7. 포크된 github repo로 돌아가 PR을 날린다
8. PR 날리는 것은 끝났다. 액세스 권한이 없기때문에 평가를 기다리거나 머지되는 것을 기다리면 된다.
'Collaboration Tool > Git & Github' 카테고리의 다른 글
Github] 이슈 템플릿 만들기 (0) | 2023.03.16 |
---|---|
핵심 쏙쏙 Git] 3-4 (amend) (0) | 2022.11.13 |
핵심 쏙쏙 Git] 2주차 개념지도 (6) | 2022.11.11 |
핵심 쏙쏙 Git] 2-12 ~ 2-13 (원격 repo와 branch) (0) | 2022.11.11 |
핵심 쏙쏙 Git] 2-9 ~ 2-11 (Merge conflict) (0) | 2022.11.11 |