깃허브(3) - 브랜치로 나누어 관리하기

최혜원·2023년 6월 9일
3

Git

목록 보기
3/5
post-thumbnail

📍 branch : 버전의 분기

브랜치로 버전의 분기를 관리하는 방법
1. 브랜치를 나눈다.
2. 각자의 브랜치에서 작업한다.
3. (필요하다면) 나눈 브랜치를 합친다.

⭐️ HEAD (자유자재로 변경 가능)

  • 현재 작업 중인 브랜치의 커밋을 가리킨다.
  • 일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다.
  • 한마디로 "내가 지금 어디에서 작업 중인가"를 가리킨다.

⭐️ checkout(체크아웃)

  • 특정 브랜치이서 작업할 수 있도록 작업 환경을 바꾸는 것
  • HEAD의 위치를 특정 브랜치의 최신 커밋으로 옮김

현재 작업환경 foo 브랜치(왼쪽 브랜치 더블클릭하면 그 브랜치로 checkout 할 수 있다.)

test 폴더 내에 새로운 foo_a.txt 파일을 만들고(내용 A) 커밋해준다.  

master 브랜치(파일2개)는 foo 브랜치(파일3개) 한단계 아래에

master 브랜치로 작업환경을 바꿈(HEAD는 master 브랜치를 가르킴)

foo 브랜치로 작업환경을 바꿈(HEAD는 foo 브랜치를 가르킴)

📍 브랜치를 합친다 == 브랜치를 병합 (merge) 한다.

foo 브랜치를 master 브랜치로 병합하면?
-> foo 브랜치가 뻗어 나오고, foo 브랜치에 커밋이 쌓이고, 병합되는 순간까지 master 브랜치는 가만히 있었다.
-> 그래서 master 브랜치는 마치 빨리감기하듯 그저 foo 브랜치에서 추가된 커밋을 반영하기만 하면 된다.
-> 브랜치 내용이 업데이트 되는 병합 기법을 빨리감기 병합 (fast-forward merge) 이라고 한다.

-> 그럼, 빨리감기 병합이 아닌 병합은?
-> bar 브랜치에는 없는 커밋이 master 브랜치에 있고 master 브랜치에는 없는 커밋이 bar 브랜치에 있는 상황
-> 두 브랜치를 병합한 새로운 커밋이 생성된다.

foo 브랜치에 있는 foo_a.txt 파일이 추가된 것 확인!

foo 브랜치 삭제

새 브랜치 생성(bar 브랜치)

master 브랜치(파일 3개)

bar 브랜치(파일 5개)

터미널에 touch c.txt 파일 생성

커밋

master 브런치에서 세번째에서 bar 브랜치가 뻗어나왔고 두개의 커밋이 만들어짐
그럴 동안에 master 브런치에서 하나의 커밋이 더 만들어짐

bar 브랜치를 master 브랜치로 머지하기

bar 브랜치를 merge한 새로운 커밋

bar 브랜치에 있던 두 개의 파일 bar_a.txt, bar_b.txt 가 잘 병합이 되었음!

profile
어제보다 나은 오늘

0개의 댓글