깃은 디폴트(메인) 브랜치에서 여러 브랜치를 파생할 수 있다.
여러 브랜치로 파생하여 메인 브랜치의 내용들과 충돌 없이 파생된 브랜치에 코드 내용을 수정할 수 있다.
그리고 수정된 코드 내용들을 메인 브랜치와 통합할 때는 PR을 요청하여 깃헙 관리자가 이를 허용/거절하는 구조로 이루어진다.
그러면 이 브랜치를 어떻게 파생할 수 있을까?
깃 브랜치 생성
로컬에서 깃 브랜치를 생성하는 방법은 다음과 같다.
아래 명령어를 쉘의 로컬 깃저장소 위치에서 입력한다.
git branch {생성할 브랜치명}
한편 메인 브랜치와의 충돌을 피하려면 메인브랜치의 최신 내용을 pull한 상태여야 한다.
이후에 브랜치에 커밋을 하여야 메인 브랜치와 충돌을 피할 수 있다.
깃 브랜치 변경
위 명령어는 로컬 깃 저장소에 새로운 브랜치를 생성하는데에서 끝난다.
해당 깃 브랜치에 수정 내역을 저장하려면 깃 브랜치를 변경하고 커밋을 해줘야 한다.
깃 브랜치를 변경하는 명령어는 아래와 같다.
git checkout {깃 브랜치 명}
깃 브랜치 삭제
한편 깃 브랜치가 필요없어지는 경우가 있다.
1. 메인 브랜치와 특정 브랜치간 충돌이 발생하여 해당 깃 브랜치를 삭제하는 경우
2. 원격 저장소의 메인 브랜치와 특정 브랜치가 통합되어서 로컬에서 해당 깃 브랜치가 필요없는 경우
이 경우에는 로컬 깃 브랜치를 아래 명령어로 삭제할 수 있다.
git branch -d {브랜치명}
한편 -d 옵션으로 삭제할 수 없다는 경고메시지가 뜨는 경우가 있는데, 이 경우는 -D를 입력하면 해결된다.
한편 로컬 레포에서 브랜치를 삭제하여도 원격 레포에는 영향을 미치지 않으니 주의해야 한다.
원격 깃 브랜치 삭제
마지막으로 깃헙에서 특정 깃 브랜치가 필요없는 경우가 있다.
이 경우는 깃헙의 레포에서 아래의 과정으로 삭제해줄 수 있다.
- 깃헙 레포에서 branches 클릭
- 삭제할 브랜치명 옆에 휴지통 아이콘 클릭
그리고 경고성 메시지에서 확인을 클리갛면 해당 브랜치가 정상적으로 제거된다.
한편 원격 레포(깃헙)에서 브랜치를 삭제하여도 로컬 레포에서는 브랜치 정보에 영향을 미치지 않으니 주의하여야 한다.
'서버 및 환경 > Git' 카테고리의 다른 글
[Gitlab] CI/CD에서 Merge Request 시 CI_PIPELINE_SOURCE가 push로 실행되는 이유 (0) | 2024.01.26 |
---|---|
[git] copy한 레포에서 submodule이 있을 때 초기화 방법 (0) | 2023.12.20 |
[Github] refusing to allow a Personal Access Token to create or update workflow 에러 해결 (0) | 2022.11.26 |
[Github] Pull Request (PR) 요청 (2) | 2022.11.18 |
[Git] git에 add / commit / push 하기 (파일 등록부터 업로드까지) (2) | 2022.11.05 |