Git & Github

깃 & 깃허브 정리 4장

chlqhrud0208 2022. 11. 4. 22:37

브랜치로 나누어 관리하기

 

브랜치(branch)는 영어로 나뭇가지를 의미한다. 

→  버전을 여러 흐름으로 나누어 관리하는 방법이다. 

 

 

브랜치를 이용하여 작업하는 방법

  1. 브랜치를 나눈다.
  2. 각자의 브랜치에서 작업한다.
  3. (필요한 경우) 나눈 브랜치를 합친다.

 

브랜치를 나누고 합쳐보기

  • 깃이 제공하는 가장 기본적인, 최초의 브랜치를 master 브랜치라고 한다.
  • HEAD는 기본적으로 현재 작업 중인 브랜치의 최신 커밋을 가리키는 표시이다.                           

         → 브랜치를 나누고 합치는 과정에서 위치를 자유자재로 바꿀 수 있다.

  • 체크아웃이란 특정 브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 것을 의미한다.

   ※ 실무에서는 브랜치의 이름을 암묵적으로 정해두는 경우가 많다.

        ex) '새로운 기능을 개발하기 위한 브랜치' → 'feature/<새 기능>'

              '릴리스를 준비하기 위한 브랜치' → 'release/<릴리스 번호>'

 

브랜치 병합하기

  1. 병합하려는 브랜치로 체크아웃한다. ( foo 브랜치를 master 브랜치로 병합하려고 하면 master 브랜치로 )
  2. 병합시키려는 브랜치에서 우클릭 후 '현재 브랜치로 <브랜치 이름> 병합' 클릭

   브랜치를 병합하고 더 이상 병합시킨 브랜치에서 작업하지 않을 예정이라면 삭제하는 것이 좋다.

 

충돌 해결하기

 

충돌이란 병합하려는 두 브랜치가 서로 같은 내용을 다르게 수정한 상황을 의미한다.

충돌이 발생하면 스테이지에 올라가지 않은 파일스테이지에 올라간 파일이 추가된다.

스테이지에 올라가지 않은 파일을 확인해보면

=====기호를 기준으로 <<<<<에 현재 체크아웃한 브랜치의 내용이 적혀 있고,

>>>>>에 병합하려는 브랜치의 내용이 적혀있다.

 

<<<<<<< HEAD

master                      #현재 브랜치 내용

=======

foo                            #병합하려는 브랜치 내용

>>>>>>> foo

 

이 파일 위에서 마우스 우클릭 후 충돌 해결을 클릭하면 '내것'을 이용해 해결'저장소'것을 사용하여 해결 항목이 있다.

'내것'은 현재 체크아웃된 브랜치를 의미하고 '저장소'는 병합하려는 브랜치의 내용을 의미한다.

충돌을 해결한 뒤 적혀있던 커밋 메세지와 함께 다시 커밋해야 브랜치가 올바르게 병합된다.

 

 

브랜치 재배치하기

 

브랜치의 재배치는 rebase라고 한다.

rebase는 브랜치가 뻗어나온 기준점을 변경하는 것이다.

재배치하려는 브랜치로 체크아웃하고, 재배치하려는 브랜치 커밋에 우클릭해서 재배치를 클릭한다.