- 브랜치에 커밋 푸시
git push origin master
- 브랜치 생성
git branch 브랜치이름
- 브랜치 이동
git checkout 브랜치이름
- 브랜치 합치기
git merge 브랜치이름
Q. 여러 줄로 커밋을 쌓는 이유?
한 줄에서 작업하면 충돌이 날 수 있고, 똑같은 코드를 동시에 고칠 가능성이 있기 때문이다.
브랜치에 커밋 푸시
git push origin master
기본으로 만들어져 있는 master 브랜치에 커밋을 푸시하라는 의미이다.
*HEAD: 지금 작업중인 로컬 브랜치를 가리킴.
브랜치 만들기 (나누기)
git branch cat
cat 브랜치를 현재 시점에 만들어라는 의미이다.
한 시점에 2개의 브랜치가 생성된다. (기존의 master + cat 브랜치)
[실습] 브랜치 생성
- [boxiting-cat 저장소] master 에서 feat/main-page 브랜치 생성
- 커밋 추가
- [boxiting-oct 저장소] pull 받기 ▶ 새로운 브랜치 feat/main-page 추가됨
- master에서 feat/comment 브랜치 생성
- 커밋 추가
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)의 최신 커밋을 합치려고 한다.
- 먼저 Base가 될 master 브랜치로 이동한다.
git merge oct
: compare 브랜치인 oct 를 나(base)와 합치고 싶다라고 명령- 합쳐진 결과는 문어A 커밋
문어A는 고양4+a 이니까 둘이 합친 결과물은 문어A이다. oct랑 master 브랜치 모두 문어A를 가리킨다.
[실습] 브랜치 합치기
앞서 만들었던 feat/main-page 와 master 브랜치를 합쳐보자. base는 master 브랜치
feat/main-page의 메인 페이지 생성 커밋을 master 브랜치에 적용(반영)하는 것이다.
- Base 브랜치인 master 브랜치로 이동
- 반영하고자 하는 feat/main-page 브랜치에서 오른쪽 마우스 - 병합
병합 후의 모습을 보면 master 에도 1↑가 생긴 것을 볼 수 있다. 하나의 변경사항이 생겨 push 해야할 것을 알려준다.
master 브랜치의 변경사항을 원격 저장소(origin/master)에도 반영해주기 위해서는 push 해주어야 한다.
→ Push해서 origin/master도 최신 커밋으로 업데이트
현 브랜치 위치 확인
좌측의 브랜치에서 Bold 처리 되어있는 브랜치가 현재 위치