SMALL
앞선 포스팅에서 Git을 사용하는 이유로 협업의 용이성
과 테스트
를 들었다.
위 두가지 모두 가지치기
가 필수라고 볼 수 있는데, 이번엔 가지치기
에 대해 알아보도록 하자.
가지치기?
- 영어로는
Branch
라고 하며, git 명령어 또한git branch
로 사용한다. - 앞서
로컬 저장소
를 만들었을 당시 디렉터리 뒤에master
라고 나와있던것을 기억하는가?
그것이 바로 브랜치명이다.
디렉터리명 뒤에 있는 민트색 master가 브랜치명이다. - 나무의 줄기(
메인 브랜치
)에서 별도의 가지(새브랜치
)를 작성,메인 브랜치
에 영향을 주지 않고 코드를 자유롭게 추가, 수정, 삭제가 가능하다. - 큰 가지에서 또 다른 갈래가 뻗어나가듯,
메인 브랜치
가 아닌 다른브랜치
에서 분기가 가능하다. - 테스트가 완료되었다면
메인 브랜치
에 병합해 실서버에 적용한다.
How to?
브랜치 생성
git branch [브랜치명]
으로 생성한다.git branch
만 입력하면브랜치
의 목록과 현재로컬 저장소
가 바라보고 있는브랜치
를 볼 수 있다.- 새 브랜치는 '코드를 올려보자!' 포스팅에서 사용했던 --set-upstream 옵션으로 원격 저장소에 등록해 주어야 한다.
브랜치 이동
git checkout [브랜치명]
으로 현재브랜치
에서 다른브랜치
로 넘어갈 수 있다.- git checkout -b [브랜치명]을 사용하면 브랜치를 새로 만든 후 바로 이동한다.
- 새로 생성한
브랜치
인 경우는Modified
와Untracked
상태인 파일이 있다면
이동한브랜치
에서 계속해서 작업이 가능하지만,
기존에 존재하고있던브랜치
인 경우는Modified
상태의 코드와
해당브랜치
에 존재하던 코드가 충돌을 일으킬 경우 checkout이 불가능하다.
- 위와 같은 경우에는 main 브랜치의 Modified 파일을 커밋하거나, 원래대로 돌려놓은 후에
someBranch 브랜치를 main브랜치로 병합해주어야 한다. - main 브랜치는 직접 수정하지 않고 별도의 브랜치에서 작업 후 main 브랜치에 병합하는 것이 안전하다.
브랜치 삭제
- 작업이 끝난 뒤 병합 후 더이상 해당 브랜치가 필요없을 때나 잘못 만들었을 때는 -D/-d 옵션을 사용해 삭제할 수 있다.
- git branch -D [브랜치명] : 메인 브랜치에 병합이 되었는지 여부에 상관 없이 무조건 삭제
- git branch -d [브랜치명] : 메인 브랜치에 병합이 되었을 경우에만 삭제, 병합되지 않았다면 삭제하지 않음.
- 파일을 수정/커밋 후 병합하지 않은 상태로 삭제되는 것을 방지하기 위해 -d 옵션을 사용하는 것을 권장한다.
브랜치 병합
- A 브랜치를 main 브랜치에 병합하려면 git checkout A 를 사용해 A 브랜치로 이동 후 git merge main을 사용한다.
- 병합 시 충돌이 나면 충돌을 해결하기 전까지는 commit/push를 할 수 없다.
git branch와 git checkout, git merge의 옵션은 다양하지만, 입문단계에서는 위 내용으로 사용해도 충분하며,
다 적기엔 너무 많기 때문에 링크의 포스팅으로 대체합니다.
BIG
'ETC > Git' 카테고리의 다른 글
Git 입문자 안내서 - 07: 끌어오기 요청하기 (0) | 2024.07.21 |
---|---|
Git 입문자 안내서 - 05 : 코드 변경, 추가 반영하기 (0) | 2024.01.05 |
Git 입문자 안내서 - 04 : 코드를 올려보자! (0) | 2024.01.05 |
Git 입문자 안내서 - 03 : git config (0) | 2024.01.05 |
Git 입문자 안내서 - 02 : Github에서 받아오기 (0) | 2024.01.05 |