[Git] Branch(merge, rebase)

WOOK JONG KIM·2022년 12월 21일
0

Git&GitHub

목록 보기
4/19
post-thumbnail


-> 이 모든 것을 하나의 프로젝트 폴더에서 진행될 수 있도록!


브랜치 생성/이동/삭제

지울 브랜치에 다른 브랜치로 적용되지 않는 내용의 커밋이 있을 시에는 -D(대문자) 옵션으로 강제 삭제 함
-> git branch -D(브랜치명)

add-coach branch

위 커밋 과정 진행 시

new-teams branch

각각의 브랜치로 switch한 이후 git log 출력해보면
-> main의 경우 replace 이후 add olivia, add freddie 브랜치만 출력됨
-> git log는 위치한 브랜치에서의 내역만 볼 수 있음

여러 브랜치의 내역 보기
-> git log --all --decorate --oneline --graph

어떻게 브랜치가 분기되어있는지 볼 수 있음


서로 다른 Branch 합치기

프로젝트의 메인 줄기는 main branch 에서 진행되고 add-coach, new-teams branch에서 다른 실험적인 시도를 하고 있는 것!

이러한 시도들이 채택되어 메인 브랜치로 가져올려 함

  1. merge : 두 브랜치를 한 커밋에 이어붙임
    -> 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식


-> 두개의 가지를 이어 붙이는 과정에서 새로운 커밋이 생김
-> 새로 생기는 커밋에는 원래 브랜치와 병합될 브랜치의 모든 변화들이 다 담김

  1. rebase : 브랜치를 다른 브랜치에 이어붙임
    -> 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합
    -> 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋음

브랜치의 마디, 커밋들을 대상 브랜치로 옮겨 붙이는 것!

merge를 하는 거나 rebase를 하는거나 결과물은 같음
-> 변경 사항들이 다 끄트머리에 모이는 느낌
-> rebase 이후 히스토리는 깔끔하게 한줄로 모이는 반면 merge는 브랜치의 흔적을 남김
-> 브랜치의 사용 내역을 남겨둘 필요가 있다면 merge, 히스토리를 깔끔하게 만드는게 중요하다면 rebase 사용


실습

git branch -d add-coach 이후

git rebase main 이후

main을 new-teams 까지의 위치로 옮겨 주지 않으면 new-teams branch에서 수정했던 작업들이 반영되지 않음

git switch main
git merge new-teams
git branch -d new-teams

profile
Journey for Backend Developer

0개의 댓글