[pre-project] Git branch 다루기

도현수·2022년 10월 21일
0
post-custom-banner

branch 란?

기존의 메인 코드를 그대로 복사해 새로운 기능 개발을 메인 개발 코드를 건드리지 않고 할 수 있는 버전관리 시스템

처음 main브랜치에서만 작업을 하다 새로운 기능 개발을 위해 브랜치를 추가한다면, 기존 main브랜치에서의 작업은 유지하고 새로운 브랜치에서 자유롭게 코드 추가 및 삭제가 가능하다.

브랜치 생성하기 / 변경하기 (git switch)

다른 브랜치로 바꾸는 작업을 switch라고 부른다. 새로운 브랜치를 생성할 때는 -c를 붙여주고, 기존에 있는 브랜치로 옮길 때는 붙이지 않는다.

feature라는 브랜치를 새로 생성하는 경우, -c를 붙입니다.
git switch -c feature
#checkout이라는 명령어도 사용할 수 있습니다.
git checkout -b feature
기존에 있던 main 브랜치로 HEAD를 변경하려면, -c를 붙이지 않습니다.
git switch main
git checkout main

브랜치 합치기 (git merge)

기능 개발이 끝나고, 브랜치를 main브랜치와 합칠 수 있다.
(merge는 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

그러나 현업에서는 브랜치를 로컬에서 바로 합치기 보다는 PullRequest 기능을 이용해 변경 내용을 확인 후에 합치는 경우가 더 많다.
따라서 로컬에서 머지하지 않고 feature 브랜치를 push하여 pull request를 요청하는 것이 권장된다.

브랜치 삭제하기 (git branch -d <브랜치명>)

이미 합친 브랜치는 dev 브랜치에 기록이 완벽히 남아있기 떄문에 굳이 남겨둘 필요가 없어 삭제를 권장한다.

git branch -d feat/todo

그러나 브랜치가 합쳐지지 않으면 삭제하지 못하도록 설정이 되어있다. 이때, 다 만들지 못한 기록을 삭제하고 싶다면 -D옵션을 사용한다.

git branch -D feat/todo

다만, 머지되지 않은 브랜치 삭제는 버전 기록 시스템의 사용 목적과는 잘 맞지는 않는다. 잘 못 만들었던 기능이지만, 해당 기능으로 돌아가고 싶을 수도 있기 때문에 돌아갈 여지를 만들어두는게 좋을 수도 있으니 신중하게 선택한다.

post-custom-banner

0개의 댓글