Branch

HUSII·2023년 5월 14일
0

Git & Github

목록 보기
2/3

Branch: 분기된 가지 (다른 차원)

프로젝트를 하나 이상의 모습으로 관리는데, 이를 하나의 프로젝트 폴더에서 진행할 수 있도록 해주는게 브랜치이다.

git branch (브랜치 이름) 브랜치 생성하기
git branch 브랜치 목록 확인
git switch (브랜치 이름) 해당 브랜치로 이동
git switch -c (브랜치 이름) 브랜치 생성과 동시에 이동하기
git branch -d (삭제할 브랜치 이름) 해당 브랜치 삭제하기
git branch -D (삭제할 브랜치 이름)
(해당 브랜치에만 있는 내용의 커밋이 있을 경우) 해당 브랜치 강제 삭제하기
git branch -m (기존 브랜치명) (새 브랜치명) 브랜치 이름 바꾸기

git log --all --decorate --oneline --graph 브랜치 내역 편리하게 보기

소스트리로 보는게 훨씬 편하다


브랜치를 합치는 두가지 방법

merge
두 브랜치를 한 커밋에 이어붙인다

  • 합쳐진 커밋 내용이 사라지지 않는다
  • 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식
    rebase
    브랜치를 다른 브랜치에 이어붙인다
  • 한줄로 깔끔히 정리된 내역을 유지하기 원할때 적합
  • 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋습니다?

B 브랜치를 A 브랜치로 merge 할때는 (A 브랜치에서 시작)
git merge B

merge는 reset으로 되돌릴 수 있다
git branch -d B 병합된 브랜치 삭제

B 브랜치를 A 브랜치로 rebase 할때 (B 브랜치에서 시작)
git rebase A
이때 A 브랜치는 뒤쳐져 있다 (B가 가장 상위 커밋에 있음)
A 브랜치 이동 후 git merge B로 B 브랜치 시점으로 fast-foward 한다.
이후 B 브랜치를 삭제해준다


merge, rebase 에서 브랜치간 충돌이 일어날때

(merge) 충돌이 일어난 파일의 코드를 수정한 후
git add ., git commit으로 merge 완료한다

git merge --abort 를 통해 merge를 중단할 수 있다

(rebase) 충돌이 일어난 파일의 코드를 수정한 후 git add .
git rebase --continue로 계속 rebase 진행한다.

merge는 딱 한번 커밋하지만,
rebase는 해당 브랜치의 변경사항 커밋들을 그대로 커밋한다
따라서 충돌이 일어난 횟수만큼 계속 충돌된 부분을 수정해줘야 한다
git rebase --abort 를 통해 merge를 중단할 수 있다

profile
공부하다가 생긴 궁금한 것들을 정리하는 공간

0개의 댓글