| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 카톡
- 중급파이썬
- node
- Vue
- EC2
- Props
- async
- Class
- TypeScript
- lambda
- SSA
- socket io
- NeXT
- pandas
- 튜플
- MongoDB
- AWS
- crud
- wetube
- 파이썬
- merge
- 채팅
- flask
- docker
- SAA
- git
- RDS
- dict
- react
- S3
- 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 (1) | 2022.01.10 |
| Git merge (0) | 2022.01.10 |
| Git branch 생성, 삭제 (0) | 2022.01.10 |