git & github 공부 기록

Git Branch 개요 및 사용

stop-zero 2023. 1. 19. 15:37

https://www.youtube.com/watch?v=I4latDqXo5M&list=PLRx0vPvlEmdD5FLIdwTM4mKBgyjv4no81&index=7 


깃 : 동시에 많은 사람이 다른 기능을 개발할 수 있는 브랜치(Branch) 기능을 제공한다. 

서로 다른 브랜치는 서로에게 영향을 주지 않기에  다른 부분의 기능 개발이 가능하다. 

먼저, Git 저장소를 만들면 자동적으로 마스터(Master)브랜치가 생성된다. 일반적으로 배포가 가능한 수준의 버전을 포함하고 있다.

추가로 별도의 브랜치를 만들어 사용하고 싶다면 체크아웃(Checkout) 명령어를 사용해야 한다.

 

Branch 동작과정

프로젝트에서 주 버전을 마스터 브랜치라 한다.

마스터 브랜치는 항상 안정화 되어 있고, 언제나 배포가 가능해야 하기에 위와 같은 모든 작업을 마스터 브랜치에서 할 수 없다.

이럴 경우 브랜치를 나누어 각기 기능에 맞게 개발을 하는 것이다. 

먼저 각 브랜치에서 개발한 뒤 마스터 브랜치에 병합하는 구조인 것이다.

병합할 때는 Merge가 수행된다. Merge가 수행되기 전까지 안정적으로 배포가 이루어지고 있다가 모든 기능이 합쳐진 이후에 다시 배포할 수 있으므로 개발의 안정성이 매우 뛰어나다.

통합 브랜치 : =마스터(Master) 브랜치, 배포가 가능한 수준의 브랜치  

토픽 브랜치 : =마스터 브랜치 외의 다른 브랜치, 특정 기능을 위해 만들어진 브랜치

 

Branch  사용법

git branch 로 현재 몇 개의 브랜치가 존재하는지 확인할 수 있다. 

자동으로 생성된 마스터 브랜치만 존재하기에 git branch "브랜치 이름" 으로 브랜치를 추가할 수 있다. 

* 표시가 되어있는 브랜치가 현재 내가 존재하는 브랜치이다. 

위치를 변경하고 싶다면 git checkout "브랜치 이름" 을 사용하면 된다. 

* 가 있는 develop 으로 위치가 변경되었다. 

 

이제 소스코드를 변경할 것이다. 

먼저, 작성한 add.py 를 git 에 추가해준다. 

git log로 확인해보면 현재 해드가 develop을 가르키고 있다. 

그러나 origin 원격지 주소에서는 master를 가르키고 있으므로 변경된 브랜치가 반영되지 않은 것을 확인할 수 있다. 

develop 브랜치의 변경을 master와 합치기 위해서는 merge 명령어를 수행해주면 된다. 

git checkout master로 브랜치가 마스터를 가르키게 하고

git merge develop으로 master와 합쳐준다. 

git log로 확인해보면 HEAD -> master, develop 헤드가 마스터와 develop을 가르키는 걸 볼 수 있다.

이제, git push 로 원격 저장소에도 수정 내용을 적용하면 된다. 

 

합쳐지는 것이 끝났기에 남아있는 develop 브랜치는 제거해주면 된다. 

git branch -d "브랜치명" 하면 브랜치가 사라진다. 

 

더보기

<명령어 정리>

  • git branch "브랜치 이름" : 브랜치 생성
  • git branch : 브랜치 목록
  • git branch -d "브랜치 이름" : 지정 브랜치 삭제
  • git checkout "브랜치 이름" :  지정 브랜치로 전환
  • git log : 로컬 저장소의 커밋 내역 
  • git merge : 브랜치 병합