Git Branch
- 브랜치란?
- 독립적으로 어떤 작업을 진행하기 위한 개념
- 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있음
- 장점
- 한 소스코드에서 동시에 다양한 작업을 할 수 있게 해줌
- 소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행할 수 있음
- 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있음
- 분리된 작업 영역(브랜치)에서 변경된 내용들은 다른 브랜치와 병합함으로써 다시 새로운 하나의 브랜치로 모을 수 있음
- 통합 브랜치(Intergration Branch)
- 배포될 소스 코드가 기록되는 브랜치
- 해당 프로젝트의 모든 기능이 정상적으로 작동하는 상태의 소스코드가 담겨 있음
- 피처 브랜치(Feature Branch, 토픽 브랜치)
- 기능 추가, 버그 수정과 같이 단위 작업을 위한 브랜치
- 통합 브랜치로부터 만들어내며, 피처 브랜치에서 하나의 작업이 완료가 되면 다시 통합 브랜치에 병합하는 방식으로 진행됨
- fast-forward
- 별도의 커밋을 생성하지 않고 헤드 브랜치가 가리키는 커밋을 바꾸는 작업
- 만약 별도의 커밋이 있었다면, fast-forward가 아닌 merge commit 방식으로 병합됨(각 브랜치가 줄기처럼 분기한 후 병합의 모양새를 가짐)
- merge와 rebase의 차이
- rebase의 원리는 fast-forward와 같음
- merge의 경우, 변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡해짐
- rebase는 브랜치 배이스를 이동시킨다는 뜻으로, 머지처럼 브랜치 통합을 목적으로 하지만, 특정 시점으로 브랜치가 가리키는 곳을 변경하는 기능을 함
- git rebase main <이동할 브랜치 이름>
브랜치 명령어 모음
- 새로운 브랜치 생성
- git branch <새로운 브랜치 이름>
- 새로운 브랜치 생성 후 해당 브랜치로 전환
- git switch -c <새로운 브랜치 이름>
- git checkout -b <새로운 브랜치 이름>
- 브랜치 목록 확인
- git branch
- 브랜치 목록과 각 브랜치의 최근 커밋 확인
- git branch -v
- 브랜치 삭제
- git branch -d <삭제할 브랜치 이름>
- git branch -D //병합하지 않은 브랜치를 강제 삭제하는 방법
- 브랜치 전환
- git switch <브랜치 이름>
- git checkout <브랜치 이름>
- 브랜치 병합
- master 브랜치로 dev 브랜치를 병합할 때
- git checkout master
- git merge dev
- master 브랜치로 dev 브랜치를 병합할 때
- 로그에 모든 브랜치를 그래프로 표현
- git log —branches —graph —decorate
- 아직 커밋하지 않은 작업을 스택에 임시로 저장
- git stash
코드스테이츠에서 부트캠프를 진행하면서, 제공해준 유어클래스 강의록을 보며 진도를 나간다
이번 강의록은 순서가 잘못되어있는 것 같다..
깃 브랜치의 내용이 먼저 나온 후, 퀴즈와 실습을 진행해야 맞는 것 같은데 뒷부분으로 가있어서 퀴즈와 실습을 진행할 때 혼자 찾아봐야했다
찾아보면서 혼자 깨닫고, 실습을 하면서 많은 오류를 마주치고 무슨 오류인지 무슨 차이인지 알아보고 이해하기 힘들었는데 뒷부분 강의록에 다 나와있는 내용이었다..
혼자 알아보라고 일부러 뒷부분에 둔건가..?
특히 fast-forward와 rebase 때문에 오전시간 내내 골머리를 앓았는데 뒷부분에 이렇게 나와있었다니..
'Code States > TIL' 카테고리의 다른 글
[0322] HTTP - Cookie (0) | 2023.03.22 |
---|---|
[0321] (페어) Git과 버전 관리 시스템 - Simple Git Workflow (0) | 2023.03.21 |
[0320] Git과 버전 관리 시스템 - Git (0) | 2023.03.20 |
[0320] Git과 버전 관리 시스템 - 개발자 도구 Git 설치 (0) | 2023.03.20 |
[0317] 웹서비스 개발 기초 - Message States (0) | 2023.03.17 |