Git · 코드 기록

Git 브랜치 (모두의 깃&깃허브_강민철 지음)

짱코딩러 2022. 11. 13. 22:15

 

 

브랜치로 나누어 관리하기

브랜치 : 나뭇가지처럼 버전을 여러 흐름으로 나누어 관리하는 방법(기본은 master)

브랜치로 나누면 코드를 통째로 복사해 일일이 변경하고 관리하는 번거로움을 해소할 수 있다.

ex) A와 B가 장바구니와 주문목록을 각자 구현하는 경우 브랜치를 나누어 각자의 브랜치에서만 작업할 수 있게 된다.

     완성되면 브랜치를 하나로 합치고 '같은 코드를 다르게 수정한 부분'만 살펴보면 된다.

 

1.브랜치 생성

master 브랜치의 3번 커밋에 foo 브랜치를 생성한다.

생성된 모습

 

2. 새 커밋 시 foo브랜치에 추가됨.(아까 브랜치 만들때 새 브랜치 체크아웃으로 설정해놔서)

foo 브랜치에 체크아웃 되어있을 때의 파일

 

3.master브랜치로 체크아웃

우측의 브랜치 목록에서 master를 더블클릭 해준다.

master 브랜치에 체크아웃 되어있을 때의 파일

 

4.master브랜치로 체크아웃된 상태에서 다시 새로운 bar 브랜치 생성후, 새 커밋

 

5. 브랜치 병합하기(merge)

  1)빨리감기 병합 : master에는 아무런 변화가 없고 그냥 foo만 얹어주면 되는경우

좌측의 브랜치 목록에서 병합해준다.

병합 후 foo 브랜치는 삭제

  2)일반 병합 : 서로 없는 커밋을 가진경우에는 새로운 커밋이 생성됨(Merge commit)

상단의 병합버튼을 통해 원하는 커밋을 선택해서 병합해준다.(선택한 커밋을 기준으로 이전 커밋까지 모두 병합됨)

bar브랜치의 4번커밋 병합
bar브랜치의 6번커밋 병합

 

 

충돌 해결하기

병합하려는 두 브랜치가 서로 같은 내용을 다르게 수정한 상황에는 충돌이 발생할 수 있다.

서로 같은 부분을 master브랜치는 master로, foo브랜치는 foo로 바꾼 뒤 병합시켜 보았다.

1.둘 중에 고르라고 보여줌

2.충돌해결

 

3.커밋해주면 끝 (커밋하러 가보면 미리 적혀있음)

 

브랜치 재배치하기(rebase)

rebase : (새로 생성한)브랜치가 뻗어나온 기준점을 변경하는 것.

master의 2번에서 뻗어나온 foo의 기준점을 master의 4번으로 재배치해준다.