전체 방문자
오늘
어제
  • 전체 글
    • HTML
    • CSS
    • Javascript
    • React
    • Typescript
    • Next.js
    • Webpack
    • Vue.js
    • Git & GitHub
    • Error
    • Study
    • 개발 일지✨

블로그 메뉴

  • 💡
  • ⚙️
hELLO · Designed By 정상우.
하루

Home

브랜치 나누기/합치기
Git & GitHub

브랜치 나누기/합치기

2022. 1. 7. 21:08
  • 브랜치에 커밋 푸시 git push origin master
  • 브랜치 생성 git branch 브랜치이름
  • 브랜치 이동 git checkout 브랜치이름
  • 브랜치 합치기 git merge 브랜치이름

 

Q. 여러 줄로 커밋을 쌓는 이유?

한 줄에서 작업하면 충돌이 날 수 있고, 똑같은 코드를 동시에 고칠 가능성이 있기 때문이다.

 

브랜치에 커밋 푸시

git push origin master

기본으로 만들어져 있는 master 브랜치에 커밋을 푸시하라는 의미이다.

*HEAD: 지금 작업중인 로컬 브랜치를 가리킴.

 

브랜치 만들기 (나누기)

git branch cat

cat 브랜치를 현재 시점에 만들어라는 의미이다. 

한 시점에 2개의 브랜치가 생성된다. (기존의 master + cat 브랜치)

 

[실습] 브랜치 생성

  1. [boxiting-cat 저장소] master 에서 feat/main-page 브랜치 생성
  2. 커밋 추가
  3. [boxiting-oct 저장소] pull 받기 ▶ 새로운 브랜치 feat/main-page 추가됨
  4. master에서 feat/comment 브랜치 생성
  5. 커밋 추가

브랜치 생성

boxiting-oct 저장소에서 pull 받아서 feat/main-page(-m "메인 페이지 생성") 브랜치가 추가된 상태에서, feat/comment 브랜치를 새로 생성하고, index.html을 수정한 뒤 확인하면 위와 같이 2개의 분기로 나뉘는 것을 볼 수 있다.

feat/comment~ 부터는 master브랜치에서 갈라진 boxiting-oct의 브랜치이다. (나눠진 평행세계)

 

브랜치 이동하기

git checkout cat

cat 브랜치로 이동해라 ▶ HEAD가 옮겨감

 

cat 브랜치에 커밋을 추가하려면?

master 브랜치는 과거 커밋을, cat 브랜치는 새 커밋을 가리키고 있다.

 

브랜치 합치기

git merge 합치고자하는 브랜치이름

master 브랜치(base)의 최신 커밋에 oct 브랜치(compare)의 최신 커밋을 합치려고 한다.

  1. 먼저 Base가 될 master 브랜치로 이동한다.
  2. git merge oct : compare 브랜치인 oct 를 나(base)와 합치고 싶다라고 명령
  3. 합쳐진 결과는 문어A 커밋

문어A는 고양4+a 이니까 둘이 합친 결과물은 문어A이다. oct랑 master 브랜치 모두 문어A를 가리킨다.

Merge 할 때에는 HEAD가 base인 master 브랜치로 이동한다.

 

[실습] 브랜치 합치기

앞서 만들었던 feat/main-page 와 master 브랜치를 합쳐보자. base는 master 브랜치

feat/main-page의 메인 페이지 생성 커밋을 master 브랜치에 적용(반영)하는 것이다.

  1. Base 브랜치인 master 브랜치로 이동
  2. 반영하고자 하는 feat/main-page 브랜치에서 오른쪽 마우스 - 병합

병합 전
병합 후

병합 후의 모습을 보면 master 에도 1↑가 생긴 것을 볼 수 있다. 하나의 변경사항이 생겨 push 해야할 것을 알려준다.

master 브랜치의 변경사항을 원격 저장소(origin/master)에도 반영해주기 위해서는 push 해주어야 한다.

→ Push해서 origin/master도 최신 커밋으로 업데이트 

 

현 브랜치 위치 확인

좌측의 브랜치에서 Bold 처리 되어있는 브랜치가 현재 위치

 

    'Git & GitHub' 카테고리의 다른 글
    • Github 프로젝트 페이지 배포하기
    • README 관리 팁
    • [GUI] Sourcetree
    • Add와 Commit의 개념 이해

    티스토리툴바