티스토리 뷰
Pull Request를 통해 협업을 할 수 있는 방법을 학습했다. Pull Request를 올리고 난 후 조금 더 작업을 진행할 수도 있을 것이다. 이런 상황에서 충돌이 발생할 수 있다. Pull Request를 올린 상황에서 발생하는 충돌(Conflict)를 해결할 수 있는 방법은 무엇일까?
Pull Request에서 발생한 Conflict
코드를 작업하면서 발생했던 충돌(Conflict)들이 Pull Ruquest에서도 발생할 수 있다. 바로 같은 파일을 수정한 2개의 브랜치가 순서대로 Merge되는 상황에서 발생한다. 앞에서 예시로 들었던 김왼손씨와 이오른씨의 개발 과정을 다시 한 번 예시로 들어보자.
김왼손씨가 a.py를 수정하고 "left"라는 브랜치에 Push를 한 후 Pull Request(PR)을 만들었다. 하지만 공교롭게도 이오른씨도 a.py를 수정하고 "right"라는 브랜치를 만들어 Pull Request(PR)를 만들었다. 이 때, 먼저 김왼손씨의 코드를 리뷰하고 "Master Branch"에 "left" 브랜치가 Merge되는 순간, "right" 브랜치에서 Conflict가 발생하게 된다. 이 때까지 배운 개념들을 활용하면 이런 문제를 해결할 수 있다. 침착하게 최신화된 Master Branch를 "right" 브랜치에 Pull를 한 다음 다시 Push를 하면 해결할 수 있을 것이다.
만약, 실험을 위해 이전까지 "feature/login" 브랜치에서 Commit하고 Push하고 Pull Request를 진행하다가, "master" 브랜치로 Checkout을 하고 나서 수정 후 Push를 하게 되면 어떤 일이 일어날까?
"This branch has conflicts that must be resolved"라는 충돌 메시지가 나타난다. 그 이유는 무엇일까?
그 이유는 바로 "feature/login" 브랜치에서 Push한 파일의 내용과 "master" 브랜치에서 Push한 파일의 내용이 달라서 충돌이 발생한 것이다.
그렇다면, 이 충돌 문제를 해결할 수 있는 방법은 무엇일까?
위 이미지를 기준으로 "feature/login" 브랜치에 Checkout이 된 상태에서, "master" 브랜치와 "Merge into current branch"를 하는 것이다.
"Merge into current branch"를 하고 나면, 위 처럼 충돌 상황이 나타난다. 그리고 나서 위의 세 가지 방법들 중 한 가지를 선택해서 충돌을 해결한다. 그리고 원하는 값으로 수정을 하고 나서 다시 Push를 한다.
그리고 나서, 다시 Repository의 Pull Request 탭에서 확인해보면 충돌 문제가 발생했던 것이 해결이 된 것을 확인할 수 있다.
그 다음, "feature/login" 브랜치와 "master" 브랜치를 병합하기 위해서 위 이미지에서 "Merge pull request" 버튼을 누르게 되면 다음과 같은 화면을 볼 수 있다.
그리고 나서, "Confirm merge" 버튼을 누르게 되면 원격 저장소에서 병합이 이루어지게 된다.
원격 저장소에서 병합을 시도하고 나서, 로컬 환경에서 확인하기 위해서 "master" 브랜치로 Checkout을 하고 나서 Pull을 시도하게 되면 "feature/login" 브랜치에서 작업한 것을 병합한 "master" 브랜치가 가져온 것을 확인할 수 있다.
지금까지 부스트코스의 Github으로 따라하는 버전 관리를 수료했다.
모든 강의를 듣고 정리하면서 알고 있었던 내용은 복습할 수 있었고, 몰랐던 부분은 새롭게 배울 수 있었다.
그리고 가장 좋았던 것은 끝까지 포기하지 않고 강의를 모두 수강 완료하였고 수료했다는 것이다.
시작하고 나서 끝까지 듣는다는 게 생각보다 제대로 실천하지 않는 경우가 종종 있는데 이번에는 그걸 이겨내고 수료했다.
'프로그래밍 지식 > Git' 카테고리의 다른 글
용량 큰 파일의 커밋을 취소해야 했던 경험 (0) | 2024.01.15 |
---|---|
[Git 협업] Pull Request (1) | 2023.05.30 |
[Git 협업] Conflict (0) | 2023.05.30 |
[Git 협업] Co-working (0) | 2023.05.30 |
[Git 협업] Merge into current branch (0) | 2023.05.30 |
- Total
- Today
- Yesterday
- 싱글톤
- 원티드 프리온보딩 챌린지
- 원티드 프리온보딩
- 자바스크립트
- javascript
- LottieFiles
- 고민한 부분
- if(kakao)dev2022
- Frontend
- 포스텍애플디벨로퍼아카데미
- 코딩테스트 대비
- 포스텍애플아카데미
- node
- PostechAppleDeveloperAcademy
- 스프링
- 프론트엔드 챌린지
- #포스텍애플디벨로퍼아카데미
- 조코딩과함께
- 신입개발자가 준비해야 할 것들
- DB Error MongooseServerSelectionError
- 개발자이력서꿀팁
- 그룹인터뷰후기
- Singleton
- 최종추가합격
- 개발 이력서 지원 팁
- React
- 깃허브 Merge
- Default Branch
- 설명회느낌점
- Express
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |