이 때, 새로운 브랜치로 Git이 바라보는 곳, HEAD를 변경하는 작업을 switch라고 부릅니다. 브랜치를 생성할 때는 생성(create)의 의미로 -c 를 붙여줘야 하고, 기존에 있는 브랜치로 옮길 때는 붙이지 않아도 됩니다.
# feature라는 브랜치를 새로 생성하는 경우, -c를 붙입니다.
git switch -c feature
# checkout이라는 명령어도 사용할 수 있습니다.
git checkout -b feature
# 기존에 있던 main 브랜치로 HEAD를 변경하려면, -c를 붙이지 않습니다.
git switch main
git checkout main
기능 개발이 끝나면 브랜치를 main 브랜치와 합칠 수 있다.
# 기능 개발이 진행되었습니다.
git commit -m "기능1의 세부 기능1"
git commit -m "기능1의 세부 기능2"
git commit -m "기능1 개발 완료"
# 머지를 위해 main 브랜치로 전환
git switch main
# main 브랜치로 feat/todo 브랜치를 병함
git merge feat/todo
실제 프로젝트 개발 시에는 브랜치를 로컬에서 합치기 보다는 Github의 pull request 기능을 이용하여 변경 내역을 충분히 확인하고 난 다음에 머지하는 경우가 더 많기 때문에, 로컬에서 머지하지 않고 feature 브랜치를 push하여 pull request를 요청하는 것을 권장한다.
# 기능 개발이 진행되었습니다.
git commit -m "기능1의 세부 기능1"
git commit -m "기능1의 세부 기능2"
git commit -m "기능1 개발 완료"
# Github 리포지토리로 푸시합니다.
git push origin feat/todo
# Github에서 Pull Request를 합니다.
push 한다음 깃허브 레포지토리 로 들어가면 pull request 생성 메세지가 뜬다 제목과 내용 작성후 커밋하면 위와 같은 화면이 나오는데, (merge)합칠 브렌치 를 설정한다.
base : [branch] -> 적용시킬 브랜치 , compare : [branch] 는 수정한, 덮어씌울 브랜치
View pull request
버튼 클릭후 아래로 내려서 Merge pull request
버튼을 누르면 합쳐진다.
git branch -d feat/todo
# 합치지않은 브랜치 삭제
git branch -D feat/todo
Git은 원활한 버전 관리를 위해서, 브랜치가 합쳐지지 않으면 삭제하지 못하도록 설정이 되어있으나, 합쳐지지 않은 브랜치를 삭제하려면 -D 옵션을 쓰면 삭제할 수 있다.
dsds
Main
: 사용자 에게 언제든 제품으로 출시할수있는 단계 ( 바로 배포하도록 사소한 버그가 없어야한다.) 팀과 특정 기준을 세워 충족시 main 브랜치로 배포한다.
dev
: 다음 버전 배포를 위한 개발 브랜치이다. 메인에서 (브랜칭)가져와서 프로젝트 팀원들이 각각 한 결과를 합쳐서 확인하는 단계로 설정한다.
main , dev 브랜치는 Github 리포지토리에 늘 업데이트 되어있어야 하며, 팀원의 코드 리뷰를 받고 진행하는 것이 정석이다. Github Pull Request에서 코드를 확인하고 코멘트를 남기며 진행하는것을 권장한다.
feature 브랜치
기능 개발, 리펙토링, 문서 작업, 단순 오류 수정 등 다양한 작업을 기록하기 위한 브랜치이다.
feature 브랜치는 보통 각 개인의 로컬 리포지토리에서 만들고 작업한다. 자주 커밋,푸쉬 하면서 팀원들과 공유도 하여 피드백을 받고 에러와 버그를 없앤뒤 dev
브랜치로 커밋 한다.
대게 feature 브랜치는 merge를 하고 삭제하여 깔끔하게 처리를 하지만, 복원 필요성이 있을시 남겨 두기도 한다.
작명의 법칙은 없지만 알아보기 쉽도록 feat/기능 을 쓰자 todo 기능의 컴포넌트를 만드는경우 feat/todo