본문 바로가기
개발/Git & GitHub

Git Branch 사용법 ( git 브랜치 생성 및 관리, git conflict 해결 )

by ▩▦▤▧▩▥ 2023. 5. 25.
반응형

Git Branch 사용법 썸네일

 

지난 글에서 VSCode를 이용하여 Git에서 add 및 commit 하는 방법에 대해서 알아보았습니다. 이어서 이번글에서는 Git에서 Branch를 만들고 사용해 보는 방법에 대해서 알아보도록 하겠습니다.

 

 

목차
Git에서 Branch란 무엇인가?
Branch를 왜 써야 할까?
Branch 사용법 알아보기  

 

 

Git에서 Branch란 무엇인가?

Git에서 Branch( 브랜치 )란 단어 그대로의 의미처럼 가지로써의 역할을 합니다. 이게 무슨 말이냐 하면, 우리가 코딩을 하면서 commit을 통해 계속 프로젝트를 진행해 나갑니다. 그런데 간혹 주요 기능이 아닌 특별한 서브 기능을 만들어야 할 때가 있습니다. 그런데 이 기능이 지금까지 해왔던 기능이랑 조금 다르고 뭔가 잘못 만들었다가 골치가 아플 수도 있다는 느낌이 드는 겁니다. 이럴 때 Branch를 만들어서 기존에 만들던 것은 놓아두고 사본을 하나 만들어서 해당 기능을 구현해 나가면 됩니다. 즉, 메인 프로젝트의 사본을 떠서 거기서 작업하는 것을 Git에서 Branch를 만들어서 사용하는 것입니다.

 

 

 

Branch를 왜 써야 할까?

위에서도 이야기를 하였지만 혹시라도 새로운 기능을 만들다가 문제가 발생할 것을 대비해 신규 기능을 만들 때는 Branch를 만들어서 사용합니다. 우리는 간혹 문서 작업을 할 때도 특정 부분에서 사본을 만들어서 작업하는 것과 같은 맥락이죠.

 

거기다 더욱더 써야 하는 이유는 혼자 작업을 하면 상관이 없는데, 여러 명이서 같이 협업을 진행해야 한다면, 같은 페이지를 수정해야 하는 경우도 발생할 수 있습니다. 이럴 때는 거의 무조건 적으로 문제가 발생할 수 있죠. 왜냐면 같은 부분을 수정할 확률이 높으니까요.

 

이럴 때 문제가 발생하지 않기 하기 위해 프로젝트 사본을 하나 만들어서 작업을 하고 테스트를 한 후에 잘 작동되면 그때 다시 메인 프로젝트로 합치기를 하기 위해 Branch를 만들어서 작업해야 합니다.

 

 

 

Branch 사용법 알아보기 

자 그럼 왜 브랜치를 사용해야 하는지는 알아보았고 그럼 어떻게 사용하는지에 대해서 알아보도록 하겠습니다.

 

Branch 생성하기

터미널에 아래와 같이 입력하면 새로운 Branch를 만들 수 있습니다.

git branch 브랜치명

 

저는 git branch redeemcode라고 만들었습니다.

VSCode 터미널 화면

 

Branch 이동하기

Branch를 만들었다면 이제 해당 Branch로 이동해서 작업을 해주면 됩니다. 이동하는 방법은 터미널에 아래와 같이 입력해 주면 됩니다.

git switch 브랜치명

 저는 방금 만든 redeemcode 브랜치로 이동하기 위해 git switch redeemcode라고 입력해 주었습니다.

VSCode 터미널 화면

 

 

알아두기

  • 사실 Git을 처음 만들고 작업하던 곳도 Branch 중 하나라고 생각하시면 됩니다. 단지 처음이었기 때문에 그냥 존재하는 거였죠. main Branch라고 생각하면 됩니다.
  • 각각의 Branch에서 작업을 하고 commit 한 내용에 대해서는 서로 다른 Branch에 영향을 주지 않습니다. 왜냐면 그것은 사본이니까요 :))

 

Branch 상태 보기

이제 main Branch와 새로 만든 redeemcode Branch에서 각각 작업을 하고 commit을 여러 번 하였다면, 이제 현재 어떤 상태인지 궁금하죠? 아래와 같이 터미널에 입력해 보세요.

 

git log --graph --oneline --all

 

 

VSCode 터미널 화면

 

위 사진처럼 현재 Branch들이 어떤 상태고 commit들을 어떻게 했는지 나타납니다. 터미널에서 보는 게 이쁘지 않으면 VSCode의 확장프로그램에서 git을 검색해서 이쁜 게 나오는 걸로 설치해서 사용해도 됩니다.

VSCode Git graph 확장프로그램 화면

 

 

VSCode에서 Git Graph 확장프로그램 사용하기

 

 

알아두기

HEAD는 현재 내가 있는 Branch 위치를 나타내 줍니다.

 

 

Branch 합치기

자자 이제 redeemcode Branch에서 작업한 게 잘 작동합니다. 이제 어떻게 해야 할까요? 어쩌긴요 이제 작업한걸 main Branch에 합쳐야죠. 터미널에 아래와 같이 입력해 주세요.

git switch main
git merge 브랜치명

 

우선 브랜치를 합치기 위해서는 main Branch로 이동을 하고, merge 명령을 해주면 됩니다. 만약 switch main이 안되면 메인 브런치가 main이 아닌 master로 되어있을 수 있으니, switch master로 입력해 주세요.

 

 

 

   어? 나는 merge 잘 안 되는데???

 

VSCode 터미널 화면

 

간단하게 Branch가 합쳐지면 좋은데 merge가 안 되는 경우가 있습니다. 왜 그럴까요? 그 이유는 main Branch와 redeemcode Branch에서 같은 파일 같은 줄을 수정했을 경우, 충돌이 발생하기 때문입니다. 이를 merge conflict라고 하는데요. 이런 상황이 발생하면 우리가 직접 교통정리를 해주어야 합니다.

 

 

merge conflict 해결방법

아래 사진에서처럼 같은 줄에서 어떤 코드를 사용할지 선택하거나 원하는대로 수정해 주면 됩니다. VSCode를 사용하고 있다면 [ Accept Current Change ] 또는 [ Accept Incoming Change ] 라고 위에 뜨는 버튼을 이용해서 선택해 줘도 됩니다.

VSCode 터미널 화면

 

 

이제 사용할 코드를 선택했다면 아래와 같이 입력해 주세요.

git add 파일명
git commit -m '메시지'

 

 

위와 같이 입력해 주면 새로운 commit이 생성되고 Branch 합치기가 잘 마무리됩니다!!

 

VSCode 터미널 화면

 

 

오늘 배운 것들을 정리하면 아래와 같습니다.

  • Branch 생성 : git branch 브랜치명
  • Branch 이동 : git switch 브랜치명
  • Branch 합치기 : git merge 브랜치명
  • Branch merge conflict 발생 시 : 사용할 코드 선택 후, git add, git commit -m '메시지'
  • Branch 상태 보기 : git log --graph --oneline --all

 

이번 글에서는 Git에서 Branch (브랜치)를 생성, 이동, 합치기 등 기본적인 사용 방법에 대해서 알아보았습니다. 다음글에서는 좀 더 심도 있게 여러 방법을 통해 Branch merge (브랜치 머지)를 해보도록 하겠습니다.

 

Git Branch Merge 다양한 방법들( fast forward merge, rebase merge, squash merge ) 및 Branch 삭제방법

반응형

댓글