본문 바로가기
💻 하나씩 차곡차곡/Back-end

[Git/Github] 혼자서 북 치고 장구치는 Branch, Merge 연습하기

by 뚜루리 2025. 4. 28.
728x90
320x100
브랜치 만들어보고 병합하는 걸 사용 안해봤다면...? 해보면 되지.....

 

🧠 브랜치(Branch)란?

  • 브랜치는 코드를 따로 실험하거나 개발하기 위한 독립된 작업 공간
  • 원래 코드(main/master)를 망치지 않고 새로운 기능이나 수정을 안전하게 따로 개발할 수 있어서 나중에 개발이 끝나면 원래 코드랑 합치면 됨 (merge)

 

🧠 브랜치를 사용하는 이유

  • 코드를 안전하게 보호하기 위해서
    • 직접 master(배포용)에다 바로 코드를 수정하면 실수하면 바로 서버나 배포 시스템이 망가질 수 있음.
  • 여러 기능을 동시에 개발하기 위해
    • 로그인 기능 개발하는 사람, 게시글 작성 기능 만드는 사람, 채팅 기능 만드는 사람 모두가 각각 자기 브랜치에서 작업할 수 있어 기능마다 독립적으로 개발 가능!
  • 협업할 때 충돌을 줄이기 위해
    • 모든 사람이 같은 코드(main)에서 작업하면 서로 수정한 게 겹쳐서 충돌(conflict)이 계속 발생해 브랜치를 나누면, 충돌은 나중에 병합할 때만 관리하면 돼서 훨씬 깔끔함
  • 개발 흐름을 깔끔하게 관리하기 위해
    • 버그 수정은 hotfix/버그명, 기능 추가는 feature/기능명, 출시 준비는 release/버전명 -> 브랜치 이름만 봐도 무슨 작업인지 바로 알 수 있어서 가독성 + 관리성 좋아짐
  • 언제든지 롤백(되돌리기) 쉽게 하려고
    • 브랜치 작업하다가 잘못됐다 싶으면 그냥 그 브랜치만 버리면 끝. 메인 코드는 깨끗하게 유지 가능

 


 

1단계 : master브랜치로 이동 + 최신화

git checkout master

 

  • checkout : "다른 브랜치로 이동"하는 명령어.
  • 즉, master 브랜치(배포 기준 브랜치)로 이동하는 것
git pull origin master

 

 

  • pull : GitHub(원격 저장소)에서 최신 코드를 가져오는 명령어
  • origin : 기본 연결된 GitHub 서버 이름.
  • master : 가져올 브랜치 이름.
  • 즉, "GitHub에 있는 최신 master 코드로 맞춘다" 는 뜻.

 

[실제 화면]

 

 

현재 생성된 브런치가 뭐뭐 있는지 확인하려면?

git branch

 

브랜치 만들어 놓은게 없을 때, master만 있음

 

브랜치 만든게 있을 때 브랜치 리스트가 뜸.

 

 

 브랜치 만들기 전에 꼭! 최신 코드 받아오기

  • 협업 중이든 혼자 하든, 다른 데서 master에 뭔가 반영됐을 수 있음
  • 그걸 모르고 브랜치 파면 옛날 기준으로 작업하게 되는 위험이 있음. 그래서 브랜치 만들기 전에 pull 해서 최신 상태로 만들어주는 게 좋다.

 


[인텔리제이에서 한다면]

인텔리제이 상단에 master를 클릭해서 [Update Project]를 클릭하여 최신 소스 반영

상단에 master라고 되어있으면 이미 master 브랜치에 위치하고 있다는 것.

 


2단계 : 새로운 브랜치 만들고 이동하기

git checkout -b feature/git-practice

 

 

  • checkout -b : "브랜치를 새로 만들면서 이동"하는 명령어.
  • feature/git-practice :  새로 만들 브랜치 이름
  • 👉 브랜치 이름은 "feature/기능명" 형태로 많이 짓는다. (Git Flow 규칙)

 

[인텔리제이에서 한다면]

역시나 상단의 master에서 [New Branch] 클릭

 

브랜치 명 입력, Checkout branch 체크 해두면 만들고 만든 브랜치로 이동!

 

이동이 되었다면 상단에 master였던게 새로 생성한 브랜치 명으로 변경되어있음.




3단계 : 파일 수정하기

*** 실습할 거니까 reame.md 파일 수정하여 실습 해봄.

명령어로 입력하거나, 그냥 화면에서 수정해도 됨.

명령어로 수정

echo "🎯 브랜치 실습 두 번째 시도입니다." >> readme.md

 

화면에서 소스코드 수정

 

 

 

  브랜치에서는 하나의 기능만 작업하기

  • feature/user-login 브랜치면 로그인 기능만!
  • 회원가입이나 게시글 추가 같은 걸 같이 작업하면 ❌
  • merge, 리뷰, 롤백 등이 어려워짐
  • 작은 단위로 작업하는 게 Git을 잘 쓰는 핵심

 

중간에 master로 옮기고 싶을 땐 꼭 커밋하거나 stash 하고 가기

git stash git checkout master
 
  • 브랜치 작업 중에 아직 저장(커밋) 안 된 파일이 있으면 다른 브랜치로 이동 ❌
  • 그럴 땐 stash로 잠깐 보관하고 이동하거나 커밋하고 이동해야 함

 


4단계 : 변경사항 Git에 추가(add)하기

git add readme.md

 

  • add : "Git이 이 파일을 추적하게 한다"는 뜻
  • 커밋할 준비를 하는 과정.
  • readme.md 파일의 변경사항을 커밋 대상으로 지정하는 것.
  • 실제로 화면에서도 뭐 결과값 암것도 안뜸.

 

 


5단계 : 변경사항 저장(commit)하기

git commit -m "두 번째 브랜치 실습"

 

 

  • commit은 변경사항을 Git에 저장하는 것.
  • -m : "메시지"는 커밋할 때 설명을 붙이는 옵션

 

[실제화면]

 

  • 1 file changed, 2 insertions(+) : 수정된 파일 개수 = 1개 (ex. readme.md), 새로 추가된 줄(insert) 개수 = 2줄

 

 커밋 메시지는 명확하게 작성하기

git commit -m "feat: 로그인 API 구현"

📘 실무에서 자주 쓰는 커밋 prefix 예시:

prefix 의미
feat 새로운 기능
fix 버그 수정
docs 문서 수정 (README 등)
chore 기타 설정/잡다한 작업
refactor 리팩토링
test 테스트 코드 추가/수정

 

[인텔리제이에서 한다면]

좌측 Commit 탭을 클릭하면 이미 스테이징에 수정한 파일이 올라와있고(add)

이미지엔 안보이지만 커밋 메시지를 쓰고 하단에 커밋을 눌러줌.

 


6단계 : master 브랜치로 돌아가기

git checkout master

 

  • 다시 master 브랜치(배포용 기준 브랜치)로 이동.
  • 병합(merge)은 "합쳐질 쪽" 으로 먼저 이동해야 함.

 

[인텔리제이에서 한다면]

master를 클릭하여 [Check out]클릭하면 브랜치 이동

 

 


7단계 : master 브랜치에 병합(merge)하기

git merge feature/git-practice
  • 현재(master) 브랜치에 feature/git-practice-2 브랜치의 작업 내용을 합친다.
  • "내가 만든 기능을 master에 반영하는 것" 이라고 이해.

 

[인텔리제이에서 한다면]

합치려는 브랜치를 클릭해서 [Merge ~~~]를 클릭하면 합쳐짐!

 


 

8단계 : GitHub에 master 브랜치 업로드(push)

git push origin master

 

  • push : 로컬(local) 브랜치의 커밋 내역을 GitHub(원격 저장소)로 업로드하는 명령어
  • origin :  기본 서버 이름.
  • master :  업로드할 브랜치 이름.

 

 

   push 전엔 항상 git status로 확인 습관!

git status

 

  • 어떤 파일이 add 됐는지, 커밋 안 한 게 있는지 확인 가능
  • 실수로 이상한 파일까지 올리지 않도록 방지

 

[인텔리제이에서 한다면]

그리고나서 Push로 반영해준다.


 

(추가)병합이 끝난 후에는 브랜치 삭제 해도 됨

git branch -d feature/git-practice
  • -d는 안전하게(merge된 경우만) 삭제하는 옵션

 


[전체 플로우]

git checkout master       # master로 이동
git pull origin master     # master 최신화
git checkout -b feature/git-practice-2  # 새 브랜치 생성 + 이동
(파일 수정)                 # 예: readme.md 수정
git add readme.md          # 변경사항 Git에 등록
git commit -m "docs: 두 번째 브랜치 실습 문구 추가" # 변경사항 저장
git checkout master        # 다시 master로 이동
git merge feature/git-practice-2 # feature 브랜치 내용을 master에 합치기
git push origin master     # GitHub에 master 업로드

 

 

 

 

 

여기까지 했다면 브랜치를 만들고 합치는 방법 터득 완.

담엔 PR(Pull Request)을 실습해보자.

 

https://ddururiiiiiii.tistory.com/626

 

[Git/Github] 혼자서 북 치고 장구치는 PR(Pull Request) 연습하기

헉..PR을 안해봤다고요...? 해보면 되져.... PR(Pull Request)이란?“이 브랜치에서 작업한 내용을 메인 브랜치에 합쳐주세요~!” 라고 요청하는 것 ❓ PR은 누구한테 보내는 건가요?기본적으로는 “프

ddururiiiiiii.tistory.com

 

 

728x90
320x100