일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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.js
- cleancode
- 그럼에도불구하고
- 자바
- 반응형 페이지
- github
- 자바문제풀이
- frontend
- Servlet
- TypeScript
- coding
- max-width
- react
- 변수
- 그럼에도 불구하고
- node
- webpack
- 프론트엔드
- JavaScript
- media query
- git
- 코딩테스트
- JS
- CSS
- java
- HTML
- react-router-dom
- 코드업
- redux
- @media
- Today
- Total
그럼에도 불구하고
[Git, GitHub] 브랜치(branch) 병합(merge)하기 본문
브랜치 병합에 대해 알아보겠습니다.
목차
[ Merge ]
branch를 이용하면서 개별 작업이 가능해지면서 편해졌지만, master를 기준으로 branch와 다른 branch를 결합해야 하는 상황에는 어떻게 해야 할까요?
git merge 명령을 사용하여 이 작업을 수행할 수 있습니다.
- merge는 특정 커밋이 아닌 branch를 병합합니다.
- merge는 항상 현재 HEAD branch를 기준으로 병합합니다.
📌 사용법
git switch master
git merge branch-name
1. 내가 병합하고 싶은 branch로 이동합니다.
2. git merge를 사용하여 현재 branch에 내가 원하는 branch를 병합시킵니다.
아래는 Master에서 branch 한 Bugfix를 Master로 merge는 과정을 담은 그림입니다.
위와 같이 merge는 간단한 상황만 존재하지는 않습니다.
다음은 합병 과정에서 충돌이 일어날 수 있는 경우에 대해 알아보겠습니다.
📌 합병(merge) 충돌
1. Master에서 branch 하여 만든 Bugfix에서 두 번의 commit을 한 상태이고, Master에서는 새로운 commit을 한 상태인 경우
그로 인해 Bugfix에는 Master에서 새로 commit 한 기록이 존재하지 않습니다. 이 상황에서 merge를 시도한다면 어떻게 될까요?
위와 같은 상황에서 git은 단순 병합을 하기보다는 Master branch에서 새로운 commit을 할 것입니다.
모든 branch를 포함한 새로운 commit을 하는 것입니다.
2. 한 branch에서 누군가 파일을 수정했고, 병합하고 있는 두 번째 branch에서 누군가 동일한 파일을 삭제한 경우
⭐️ 깃은 자동적으로 병합하는 방법을 알지 못해서 어떤 것을 유지하고 어떤 것을 제거해야 하는지 결정하지 못합니다.
그렇기 때문 애 아래와 같은 오류 문구를 확인할 수 있습니다.
CONFLICT (content): Merge conflict in blahblah.txt
Automatic merge failed; fix conflicts and then commit the result.
🏷️ 충돌 해결 방법
1. merge conflicts가 발생한 파일(들)을 엽니다.
2. 각 branch에서 충돌이 발생하는 내용을 모두 유지할지, 한 곳에서 제거할지 결정하고 수정 및 편집합니다.
3. 문서에서 충돌이 발생한 "marker"를 제거합니다.
4. 변경 사항을 추가한 다음 commit 합니다.
⭐️ Git merge branch 연습하기
https://plum-poppy-0ea.notion.site/Git-Merging-Exercise-0236 a17 f04 c847159 a38 f5 efa978 ce2 c
'이모저모 > Git, GitHub' 카테고리의 다른 글
[Git, GitHub] git stash란? (0) | 2023.07.11 |
---|---|
[Git, GitHub] Gif Diff란? (0) | 2023.07.06 |
[Git, GitHub] branch(브랜치)에 대해 알아보자 (0) | 2023.07.03 |
[Git, GitHub] commit, commit message 수정하는 법 (0) | 2023.06.30 |
[Git, Github] 기본적인 터미널 명령어 (0) | 2023.06.27 |