Branch 21.04.07
in Dev on Java Script
Git Branch Practice
Branch
서로의 브랜치에 영향을 주지 않는 독립된 작업 영역 (사본이라 생각하면 쉬움). 브랜치에 작업을 해도 원본에는 영향이 가지 않는다. 단순히 브랜치를 “하나의 커밋과 그 부모 커밋들을 포함하는 작업 내역”이라고 기억하시면 편하다.
브랜치를 사용하는 이유 : 협업을 할 때 기능을 각각 분리하고 개발 혼잡을 피하기 위해서. 새로운 기능을 개발 할때 원본에 영향을 주지 않고 다양한 시도를 하고 싶을 때
하나의 원본을 베이스로 하여 여러개의 브랜치를 만들고 각각의 브랜치에서 맡은 기능들을 개발 후 나중에 원본에 합쳐줌.
브랜치 관련 명령어
브랜치는 항상 현재 작업 공간을 베이스로 만들어진다. 그러므로 현재 어떤 브랜치에 있는지 확인해야한다.
- 브랜치 목록 확인
$ git branch -a
- 작업 중인 브랜치 이동 방법
// 현재 작업 공간에서 이동
$ git checkout <이동하고 싶은 브랜치 이름>
- 브랜치 생성 : 브랜치는 항상 현재 작업 공간을 베이스로 만들어진다.
// b는 브랜치 생성과 이동을 포함, 즉 생성 후 해당 작업으로 브랜치로 이동
$ git checkout -b
- 원본을 베이스로 하는 또 다른 브랜치 만들기
1.베이스로 하고 싶은 브랜치(원본)로 작업 공간을 옮긴다.
$ git checkout <이동하고 싶은 브랜치 이름>
2.브랜치를 생성한다.
$ git checkout -b
브랜치 병합 방법
브랜치 합치는 방법
-git merge : Git의 합치기(merge)는 두 개의 부모(parent)를 가리키는 특별한 커밋을 만들어 냅니다. 두개의 부모가 있는 커밋이라는 것은 “한 부모의 모든 작업내역과 나머지 부모의 모든 작업, 그리고 그 두 부모의 모든 부모들의 작업내역을 포함한다”라는 의미가 있습니다.
-git rebase : 리베이스는 기본적으로 커밋들을 모아서 복사한 뒤, 다른 곳에 떨궈 놓는 것입니다. 조금 어렵게 느껴질 수 있지만, 리베이스를 하면 커밋들의 흐름을 보기 좋게 한 줄로 만들 수 있다는 장점이 있습니다. 리베이스를 쓰면 저장소의 커밋 로그와 이력이 한결 깨끗해집니다.
rebase vs merge 차이