일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MinHeap
- Reinforcement Learning
- One-Stage Detector
- BFS
- deep learning
- ubuntu
- eecs 498
- MySQL
- YoLO
- 머신러닝
- Python
- dynamic programming
- 강화학습
- machine learning
- 그래프 이론
- CNN
- NLP
- LSTM
- r-cnn
- C++
- DP
- opencv
- image processing
- dfs
- two-stage detector
- Mask Processing
- 백준
- 딥러닝
- AlexNet
- real-time object detection
- Today
- Total
JINWOOJUNG
[ Git ] 1. Git Branch 관리 및 Merge 본문
들어가며
하나의 Repository에서 여러명의 개발자가 개발하게 된다면, 일반적으로 각자의 Branch에서 개발한 뒤, main Branch로 병합하게 된다. 위 과정에서 가장 많이 일어나는 것이 충돌 문제이다. 이 과정에서 발생할 수 있는 문제들과 각각의 Branch에서 개발한 뒤 하나의 Branch로 병합(Merge) 하는 방법을 알아보자.
Branch
Branch는 기존의 코드를 건드리지 않고 따로 개발할 수 있는 갈래를 의미한다. 일반적으로 main Branch에는 안정된 코드가 존재하고, 각각의 Branch에서 개발한 후 main Branch로 Merge하게 된다.
Branch 목록을 확인하기 위해서는 해당 Repository에서 git branch 명령어를 통해 확인할 수 있다.
현재 main, jinwoo branch가 Local Branch에 존재하고 있고, 현재 나의 Branch는 jinwoo Branch 임을 확인할 수 있다.
$ git branch
* jinwoo
main
git branch -r 을 통해 Remote Branch를 확인할 수 있으며, 현재 casey라는 다른 개발자도 동일한 Repository에서 개발중임을 확인할 수 있다.
$ git branch -r
origin/HEAD -> origin/main
origin/casey
origin/jinwoo
origin/main
Branch에서 Push
현재 Branch는 jinwoo Branch이다. 여기서 개발을 한 뒤, 해당 Branch에서 Push 하는 과정은 다음과 같다.
- git status
- 이전 Commit 으로부터 수정 된 사항
- git add .
- 수정된 파일들을 커밋 준비(Stage) 상태로 만
- git commit -m '내용'
- 커밋 메시지를 작성하여 커밋을 생성
- git push
- 현재 Commit을 push
- 로컬 브랜치의 변경 내역을 원격 브랜치에 반영한
$ git status
$ git add .
$ git commit -m '내용'
$ git push
Commit 결과를 확인하고 싶으면 git log --all을 통해 log를 확인할 수 있다.
1451f Commit으로 부터 수정된 사항이 "[Jinwoo] bug fix..02"라는 내용으로 jinwoo Branch에 Commit 됨을 확인할 수 있다.
$ git log --all
commit 7bec06736a781be8c2e72109fab5fcca18bafeed (HEAD -> jinwoo, origin/jinwoo)
Author: Jinwoo_Jung <wjdwlsdn8520@gmail.com>
Date: Sat Apr 12 15:20:43 2025 +0900
[Jinwoo] bug fix..02
commit 1451f38efd7b5419063977151b5b184ef3a39f8b
Author: Jinwoo_Jung <wjdwlsdn8520@gmail.com>
Date: Fri Apr 11 23:47:11 2025 +0900
[Jinwoo] bug fix..01
main Branch Merge
각 Branch에서 개발된 내용은 main Branch로 Merge 할 필요가 있다. 각 Branch에서 Push 된 Commit이 존재하게 된다면, Github 창에서 Merge pull request가 뜬다. 그때, request 요청하고 수락하게 되면 쉽게 main Branch로 Merge할 수 있다.
실제로 Merge 한 결과, main Branch에서는 각 Commit에서 수정된 부분이 반영된 것을 확인할 수 있다.
마무리하며
만약에 main Branch로 Merge하는 과정이나, 각 Branch에서 개발 후 Push 하는 과정에서 git fetch를 통해 최신 상태로 Update 하지 않으면 충돌나는 경우가 발생하게 된다. 이때 필요한 것이 rebase 과정인데 이는 다음 포스팅에서 다루도록 하자. Git을 사용하는 과정에서 가장 많이 발생하고 가장 중요한 것이다.
'Git' 카테고리의 다른 글
[ Git ] 0. Git/GitHub (1) | 2025.04.11 |
---|