각 작업들은 서로 영향을 주지 않도록 분리된 공간에서 독립적으로 진행할 필요가 있습니다.
Git은 이를 위해 현재의 시간선에서 새로운 ‘작업 공간(차원)’을 분리해내는 기능, 즉 branch를 제공합니다.
신규 기능 개발, 버그 수정, 성능 개선, 리팩토링 등 모든 작업은
이처럼 메인 코드와 격리된 브랜치에서 안전하게 진행됩니다.
그리고 작업이 충분히 검증되어 정식 버전(main)에 적용해도 문제가 없을 때,
그때만 main 브랜치로 병합(merge)됩니다.
즉, 프로젝트 폴더를 따로 복사하지 않고도 여러 작업 공간을 만들어 안전하게 실험할 수 있게 해주는 것,
그것이 바로 Git의 branch입니다!
이번에는 브랜치를 생성해보겠습니다!
cursor에서 작업을 할거고, 현재 브랜치의 상태는 아래와 같습니다!

1. 새로운 브랜치 생성하기
git branch add-coach
이 명령어는 add-coach라는 이름의 브랜치를 생성한다는 뜻입니다.
즉, 새로운 코치를 추가하는 작업을 진행하기 위한 공간을 만드는 거죠
명령어를 실행하고 히스토리를 보면 add-coach라는 브랜치가 추가된 것을 확인할 수 있습니다

git branch
이 명령어를 통해 로컬 브랜치들의 목록을 확인해 볼게요

기존에 main 브랜치와 추가된 add-coach가 보입니다
그리고 현재 저는 main 브랜치에 있기 때문에 main앞에 * 별표로 표시되어 있는 것을 알 수 있습니다

소스트리에서도 브랜치 섹션에 같은 정보가 표시되어 있고,
히스토리 그래프에서 보면 최신 커밋에 두 브랜치가 모두 위치해 있는 것을 볼 수 있습니다
2. 새로 만든 브랜치로 이동하기
git switch 이동할 브랜치의 이름
git switch add-coach

명령어를 실행해보니 맨 오른쪽에 표시되는 브랜치명이 "add-coach"로 변경된 것을 볼 수 있습니다
이번에는 새로운 브랜치를 만드는 동시에 해당 브랜치로 이동해보겠습니다
3. 브랜치 생성 및 이동
브랜치 명 : new-teams
git switch -c new-teams
"new-teams"라는 브랜치를 create하는 동시에 거기로 switch해라라는 의미의 명령어입니다

이렇게 new-teams라는 새로운 브랜치를 생성하고 이동했습니다

현재는 이 3개의 브랜치가 다섯번째 커밋에 싹만 나와있고 각자의 마디로 분기되지 않은 상태입니다
4. 브랜치 삭제하기
먼저 브랜치를 삭제하기 위해 to-delete라는 새로운 브랜치를 생성하겠습니다
git branch to -delete
브랜치를 생성했을 때 git branch 명령어를 통해 잘 생성되고 있는지 확인해주세요
이제는 이 브랜치를 삭제하는 명령어를 작성하겠습니다
git branch -d to-delete
여기서 중요한 포인트는! 브랜치를 삭제할 때, 삭제할 브랜치에 위치한 상태에서는 이 명령어를 사용할 수 없다는 것입니다!!!
즉, 현재 내가 위치한 브랜치를 삭제하려면 먼저 다른 브랜치로 이동한 다음 진행해야한다는 거죠

명령어를 실행하면 to-delete라는 브랜치가 삭제된 것을 확인할 수 있습니다
5. 브랜치명 변경하기
브랜치 이름을 변경하기 전에 to-rename이라는 브랜치를 생성해주겠습니다
git branch -m 기존이름 변경할 이름

이렇게 기존의 to-rename에서 renamed로 변경된 것을 확인할 수 있습니다!
6. 브랜치 강제로 삭제하기
renamed 브랜치에 커밋을 해서 브랜치를 뻗어보겠습니다
저는 .gitignore에 .config를 추가하고 Edit gitignore 라는 커밋 메시지를 남겨볼게요

다른 브랜치는 다섯번째 커밋에 머물러있는데요 renamed는 새로운 커밋으로 뻗어난것을 확인할 수 있습니다

소스트리에서도 확인할 수 있죠
이제 main브랜치로 와서 renamed 브랜치를 삭제하려고합니다
git branch -d renamed
이 명령어를 치니까 해당 브랜치가 아직 merge되지 않았다고 하네요

왜 이런 에러가 난 걸까요?
renamed 브랜치에서 새로운 버전이 만들어졌고 해당 커밋이 다른 브랜치로 적용되지 않은 상태에서
이 브랜치를 지워버리면 그 커밋이 사라져버리기 때문에 일반 삭제 명령어로는 지워지지 않는 겁니다!
대상 브랜치와 그 곳에서 진행된 작업까지 강제로 삭제하려면 대문자 D옵션을 붙여줘야합니다
git branch -D renamed
7. 각 브랜치의 가지를 뻗어보자
각 브랜치마다 내용을 수정해서 가지를 뻗어봤습니다

각 브랜치가 마디를 뻗어나가게 된것을 확인할 수 있는데요
main인 브랜치가 마치 곁가지처럼 표현이 되어있습니다
하지만 Git의 관점에서 보면
모든 브랜치는 Git의 관점에서 동등하며 주 브랜치와 곁가지가 따로 존재하지 않는다는 것을 알아야합니다
우리가 main이라 이름지은 브랜치도 개발자가 부여하는 의미일 뿐! Git은 이를 신경 쓰지 않습니다
그래서 Git 그래프에서 길게 뻗은 브랜치는 보통 해당 브랜치에서 최신 커밋이 발생한 결과라고 생각하시면 됩니다!
'데이터 분석 > 04. Git' 카테고리의 다른 글
| Merge vs Rebase: 충돌이 일어난 이유와 해결하는 방법 (0) | 2025.11.10 |
|---|---|
| Git 병합 방식 비교: Merge vs Rebase (0) | 2025.11.10 |
| SourceTree로 커밋해보기 (0) | 2025.11.05 |
| 다른 버전으로 돌아가는 방법 3가지(reset, revert, checkout) (0) | 2025.11.05 |
| 새로운 버전 만들기 (0) | 2025.11.05 |
