1. 브랜치(branch)란?
Git에서의 브랜치(branch)는 독립적인 작업 영역을 뜻하며, 여러 프로젝트 구성원들이 각기 다른 기능을 병렬식으로 개발할 수 있도록 Git에서 제공하는 기능이다.
저장소를 만들면 main이라는 기본 브랜치가 자동으로 생성되는데, 이 기본 브랜치가 배포가 가능한 브랜치이다.
이렇게 배포가 가능한 브랜치를 통합 브랜치라고 하며, 통합 브랜치 외의 브랜치들을 토픽 브랜치라고 한다.
토픽 브랜치들의 작업이 끝나면 통합 브랜치와 병합(merge)을 해서 배포를 하면 되는 것이다.
아래와 같이 깃허브 프로젝트에 들어가보면 브랜치 목록과 기본 브랜치를 확인할 수 있으며, 다른 브랜치에서 작업한 내용을 조회하고 다운로드 받을 수도 있다.
그리고 cmd에서도 git branch명령으로 브랜치 목록을 조회할 수 있다.
2. 기본 브랜치 변경
프로젝트 상단 메뉴의 Settings -> Branches에서 기본 브랜치를 변경할 수 있다.
현재 브랜치가 1개라면 우측의 change 화살표가 보이지 않을 것이다. 필자는 브랜치가 2개인 프로젝트의 Setting으로 들어갔기 때문에 보이는 것이다.
왼쪽의 펜 아이콘을 누르면 기본 브랜치명을 변경할 수 있고, 우측의 change 화살표를 누르면 기본 브랜치를 변경할 수 있다.
3. 브랜치 생성
매우 간단하다.
git branch 뒤에 생성하고자 하는 브랜치명을 입력하면 된다.
git branch [브랜치명]
4. 현재 브랜치 변경
git checkout 또는 git switch명령을 사용하면 된다.
git checkout [브랜치명]
git switch [브랜치명]
※ checkout의 -b 옵션 : 브랜치의 작성과 checkout을 한꺼번에 진행
develop 브랜치로 현재 브랜치를 바꾼뒤, 프로젝트에 develop.txt파일을 새로 생성해서 내용까지 넣었다.
저장 후 git add까지 하고 status를 확인해보았다.
이제는 "On branch develop"이라는 문구가 나왔다. 이 문구는 현재 브랜치가 develop이라는 것을 의미한다.
그리고 커밋까지 완료했더니,
커밋 내역에서도 develop 브랜치에서 커밋했음을 확인할 수 있었다.
5. 브랜치 병합
통합 브랜치로 이동한 뒤, git merge명령을 이용해서 특정 토픽 브랜치와 통합할 수 있다.
git merge [통합 할 브랜치]
토픽 브랜치인 develop에서 진행한 커밋이 통합 브랜치인 main에도 적용되었다.
※ 통합 브랜치에 있던 기존 파일을 토픽 브랜치에서 변경하는 경우에는 토픽 브랜치의 파일 내용으로 적용된다.
6. 브랜치 push
1) 통합 브랜치 push
2) 토픽 브랜치 push
develop 브랜치도 깃허브로 push하기 위해서, develop 브랜치로 switch한 뒤에 git push명령을 실행해보았다.
그런데, "fatal: The current branch develop has no upstream branch." 라는 오류 메세지가 출력되었다.
develop 브랜치가 현재 원격 저장소에 없기 때문에 이런 오류가 발생한 것인데, 친절하게도 push에 --set-upstream옵션을 붙이면 된다고 설명을 해준다.
위 오류에서 추천해준 명령어를 그대로 입력하였더니 정상적으로 push가 완료되었다.
3) 확인
develop 브랜치가 추가되어 총 2개의 브랜치가 되었다.
두 브랜치 모두 잘 적용 되었다.
7. 브랜치 제거
git branch -d [제거할 브랜치명]
test라는 브랜치를 생성하고 다시 제거한 모습이다.
'Git & Github' 카테고리의 다른 글
[Git] 원격 저장소의 이름 / README.md 파일 (0) | 2021.04.08 |
---|---|
[Git] 브랜치(2) - 충돌(conflict) 처리 (0) | 2021.04.07 |
[Git] 저장 취소(2) - git commit, git push / commit 주석 변경 (0) | 2021.04.06 |
[Git] 저장 취소(1) - save, git add (0) | 2021.04.06 |
[Git] 저장소 동기화(clone, init, add, commit, remote, push) (0) | 2021.04.05 |
댓글