Git
Git branch 다루기
- 처음에 GitHub Repository를 생성하면 나오는 main 브랜치에서만 작업을 하다가 새로운 기능 개발을 위해 feature 브랜치를 새로 생성하는 경우, 기존 main 브랜치에서의 작업은 유지하고 새로운 feature 브랜치에서 자유롭게 코드를 추가 및 삭제할 수 있습니다.
브랜치 생성하기/변경하기
1
2
3
4
5
6
7
8
# feature라는 브랜치를 새로 생성하는 경우, -c를 붙입니다.
git switch -c feature
# checkout이라는 명령어도 사용할 수 있습니다.
git checkout -b feature
# 기존에 있던 main 브랜치로 HEAD를 변경하려면, -c를 붙이지 않습니다.
git switch main
git checkout main
브랜치 합치기
1
2
3
4
5
6
7
8
# 기능 개발이 진행되었습니다.
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를 요청하는 것을 권장합니다.
1
2
3
4
5
6
7
# 기능 개발이 진행되었습니다.
git commit -m "기능1의 세부 기능1"
git commit -m "기능1의 세부 기능2"
git commit -m "기능1 개발 완료"
# GitHub 리포지토리로 푸시합니다.
git push origin feat/todo
# GitHub에서 Pull Request를 합니다.
브랜치 삭제하기
머지된 feature 브랜치는 이미 dev 브랜치에 기록이 완벽하게 남아있기 때문에 굳이 남겨둘 이유가 없어 삭제를 권장합니다. 원격 리포지토리에서 pull request가 성공적으로 마무리되면, 아래 스크린샷처럼 브랜치를 삭제하는 버튼을 눌러 쉽게 삭제할 수 있습니다.
로컬 리포지토리에서 브랜치 삭제는 git branch -d <브랜치명> 으로 할 수 있습니다.브랜치명>
1
git branch -d feat/todo
- Git은 원활한 버전 관리를 위해서, 브랜치가 합쳐지지 않으면 삭제하지 못하도록 설정이 되어있습니다. 하지만 종종 다 만들지 못한 기능의 기록을 삭제하고 싶을 수 있습니다. 이 때 -D 옵션을 쓰면 삭제할 수 있습니다.
1
git branch -D feat/todo
2024-01-25
원격 저장소
git remote update
: 원격 저장소의 branch를 업데이트 한다.git branch -r
: 원격 저장소의 branch를 볼 수 있다.git branch -a
: 원격과 로컬 저장소의 모든 branch를 볼 수 있다.git checkout -t [원격 branch]
: 원격 branch의 이름과 동일하게 로컬 저장소에 생성한다.