일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flask
- 파이썬
- 채팅
- 튜플
- wetube
- dict
- node
- SSA
- docker
- Vue
- git
- S3
- Class
- react
- lambda
- RDS
- 중급파이썬
- AWS
- EC2
- Props
- MongoDB
- merge
- async
- socket io
- SAA
- pandas
- crud
- NeXT
- TypeScript
- 카톡
- Today
- Total
초보 개발자
Git merge conflict 본문
하나의 파일을 여러 브랜치에서 수정하고 하나의 branch에 merge하려고 할 때 merge conflict(병합 충돌)이 발생한다.
이 것은 오류가 아니다.
양 쪽에서 내용이 수정되었는데 어떤 내용을 반영해야 할지 사용자에게 물어보는 것이다.
국물 내는 비법을 추가하는 feature/stock브랜치와 르탄이의 가문의 김치찌개 비법을 추가할 jjigae_rtan 브랜치를 만들어서 작업하려고 한다. 다른 브랜치에서도 같은 파일을 수정해서 일부러 Merge conflict를 내고보 충돌을 해결해보려고 한다. 우리가할 작업은 아래와 같다.
먼저 main에서 브랜치 2개를 만들어 주었다.
그리고 feature/stock으로가서 2개의 커밋을 해주었다.
그리고 feature/jjigae_rtan으로 가서 같은 파일을 수정하고 커밋을 해주었다.
그럼 이렇게 된 것을 확인할 수가 있다. 이제 main과 병합을 하기전에 현 상황을 그림으로 나타내면 아래와 같다.
전 게시물에서 했던 것은 2개의 브랜치에서 서로 다른 파일을 수정하였고, 그걸 병합했었다. 이 때는 머지 충돌이 일어나지 않았다.
이번에 할 것은 2개의 브랜치에서 서로 같은 파일을 수정하였고 이를 병합하려고한다. 이 때는 머지 충돌이 일어난다.
내가 merge할 브랜치(main)에 체크아웃을 해주고 병합버튼을 눌르자. 먼저 feature/stock을 병합해주자.
그럼 아래와 같이 바뀔 것이다.
이제 feature/jjigae_rtan을 머지해보자. 이제 충돌이 일어난다.
파일 상태를 확인하면 아래와 같이 변해있는 것을 확인할 수가 있다.
<<<<<<HEAD에는 현재 브랜치에있는 파일의 내용이 나온다.
그리고 =======를 기준으로 병합하려고 하는 브랜치의 파일의 내용이 나온다.
그리고 >>>>>>>feture/jjigae_rtan처럼 브랜치의 이름이 나온다.
이 사이의 내용을 해결해주면 된다. 해결방법은 간단하다.
<<<<<<HEAD
======
>>>>>>이 세개를 지우고 커밋을하면 된다.
그럼 이렇게 잘 해결이 된 것을 확인할 수가 있다. 그림으로 보면 아래와 같다.
'AI 웹개발 트랙 - 내배캠 > 5주차' 카테고리의 다른 글
Git fork (0) | 2022.01.11 |
---|---|
Git PR(pull request) (0) | 2022.01.10 |
Git 원격 repo와 branch (0) | 2022.01.10 |
Git merge (0) | 2022.01.10 |
Git branch 생성, 삭제 (0) | 2022.01.10 |