| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- RDBMS
- Python
- python기초
- CLIP
- TTS
- RNN
- ASR
- 객체지향
- 딥러닝
- Transformer
- 힙정렬
- 생성형 인공지능
- 랭그래프
- 자연어처리
- CNN
- 데이터 시각화
- 정보처리기사
- python 기초
- 기초
- 소프트웨어 개발
- 캐글
- 알고리즘
- dementional reduction
- 트랜스포머
- 머신러닝
- 에이전트
- SQL
- UMAP
- LangGraph
- 데이터엔지니어
Archives
- Today
- Total
수달이네 기술 블로그
4. 브랜치 병합과 충돌 본문
브랜치(branch)
커밋들은 서로 연결되어 하나의 줄기(branch)를 이룬다

그러나 같은 원격저장소내 하나의 줄기에서 협업하면 자주 충돌이 발생한다.

- 같은 라인을 수정하거나, 같은 파일을 수정할 경우

- 충돌은 먼저 푸시한 커밋은 정상 반영되고, 늦게 푸시한 커밋에서 오류가 발생한다.

- 이때 해당 작업을 여러 갈래로 나누어 각자의 줄기에서 작업해 충돌 걱정 없이 동시에 작업함.
브랜치란?
단순히 커밋 하나를 가리키는 포인터일 뿐이다.
- 새 커밋을 생성하면 브랜치는 이동해 새로운 커밋을 가리킨다.
- 이전에 체크아웃을 통해 이전 버전을 확인한 것은 커밋 아이디로브랜치를 바꿔주었기 때문이다.
- 이때 새로운 브랜치를 생성하면, 같은 커밋을 가리키는 포인터가 하나 더 생긴다.
- 이때 새로운 브랜치에 커밋하면 원래 master브랜치보다 하나 앞선다
- 그리고 다시 master브랜치로 체크아웃해 커밋하면 브랜치가 나뉘는게 보인다.

git branch 브랜치명:브랜치를 생성하는 CLI
git checkout -b 브랜치명 : 브랜치명에 있는 브랜치를 새로 생성하고 체크아웃
병합
두 브랜치 버전의 합집합을 구하는 것.
빨리감기 병합
- 한 브랜치와 다른 한 브랜치간에 버전차이(갈라짐이 없음)가 날때 병합하는 방식
- merge commit없이 포인터만 밀어줄 뿐이라 충돌이 나지 않는다.
3-way병합
- 두 브랜치가 분기(갈라짐)상태에서 병합을 해야하는 경우
- 갈라진 기준이 되는 commit, branch1이 가리키는 commit, 2가 가리키는 commit 3가지를 기준으로 병합함.
- 해당 병합에선 작업한 내용이 겹칠때 충돌이 발생할 수 있다.
기준 브랜치

- 병합한 결과를 A브랜치나 B브랜치 어디에 반영할지를 결정한다.
- 즉, A브랜치 기준으로 병합할 경우 A브랜치는 병합한 내용이 나타나고, B브랜치는 병합한 내용이 반영되지 않는다.
충돌
서로 다른 브랜치에서 동일한 부분을 다르게 수정한 후 병합을 시도할 때 충돌 발생
- 같은 파일에서 같은 부분을 수정
- 충돌이 일어났을 경우 해당 파일을 수정할 수 있다.

- 위같은 상황에서 -====귀가 기준 브랜치, 아래가 합치려는 브랜치이다.
- 수정이 완료되면 병합이 될 수 있다.
Pull Request(깃허브 내)
협업 상황에서 협력자에게 브랜치 병합을 요청하는 메세지를 보내는 것이다.
- 내가 브랜치를 변경하고 깃허브에 푸쉬할 경우 pr을 보내는 메세지를 보낼 수 있음
- pr을 보내면 해당 병합 내용을 원본을 가진 개발자가 병합할 수 있다.
- base: master, compare: branch1
- 기준이 되는 브랜치가 master, 내가 작업하는 브랜치가 compare에 올라간다.
- pr도 메세지를 같이 만들 수 있다.
pr을 받을경우
- 받으면 3-way commit상황처럼 병합커밋을 만들 수 있는 입력창이 보이게 된다.
패치
패치는 Git에서 새로운 이력을 업데이트 하는 명령이다.
- Pull은 실제 로컬 저장소에 코드를 내려 받지만
- Patch는 그래프만 업데이트 한다.
'학교공부 > 오픈소스SW' 카테고리의 다른 글
| 5. 깃 브랜치 전략 (0) | 2026.04.23 |
|---|---|
| 3. 소스트리(GUI버전관리) + 깃허브 상세 (0) | 2026.04.22 |
| 2. Git, Github 개념 (1) | 2026.04.21 |
| 1. 오픈소스의 개념, 역사, 라이센스 (0) | 2026.04.21 |