IT recording...
[Opensource_git] 06. 브랜치 본문
[원문링크]
https://adorable-aspen-d23.notion.site/OpenSrc_Git_06_-4b03d2186deb478d8d9c511f2fb8df7e
[2021 - 1학기 수강한 오픈소스SW입문 강의 정리본입니다.]
브랜치
: 프로젝트를 독립적으로 관리하는데 사용
1. 특징
- 브랜치는 작업 폴더를 실제로 복사하지 않고, 가상 폴더로 생성함
- SHA1 파일 하나만 있는 것 처럼 보임 > 병합 편리
- 브랜치로 생성된 가상폴더 빠르게 공간 이동 가능
- HEAD포인터를 가지고 있음
- 브랜치를 생성하려면 기준이 되는 브랜치 또는 커밋이 하나 있어야 함
2. 브랜치 생성
- 새 브랜치를 생성하면 포인터만 있는 브랜치가 생성됨
- 현재 커밋을 가리키는 HEAD를 기준으로 생성
git branch 브랜치이름 (커밋ID)
- 브랜치 이름 규칙
* / 사용하여 계층구조 가능
* '-','.' 로 시작할 수 없음
* '..'사용 불가
* 빈칸 ~ ^ ? * [] 포함 불가
** 중복 불가
- 성공적인 브랜치 모델
- master : 배포 가능한 상태만을 관리
- develop : 통합 브랜치의 역할(개발 진행)
- feature : 새로운 기능 개발 및 버그 수정
- release : 릴리즈를 위한 최종적인 버그 수정 등의 개발( 배포 가능 상태가 되면 master로 병합)
- hotfix : 배포한 버전에 긴급 수정이 필요할 경우, master에서 분기
3. 브랜치 확인
git branch
//해시값확인
git rev-parse 브랜치이름
//세부사항 확인
git branch -v
//브랜치 흐름
git log --graph --all
//트래킹 브랜치 확인
git branch -vv
>> feature 83fhsiw [origin/function2 : ahead 1] functionmaster2 working
4. 브랜치 이동
- 브랜치를 변경하려면 워킹 디렉토리를 정리하고 가야 함(commit 끝내고)
- 브랜치를 이동하면 HEAD 포인트도 이동됨
- 브랜치가 여러개 > HEAD 포인트도 여러개
git checkout 브랜치이름
//이전 브랜치로 이동
git checkout -
//생성하면서 브랜치 이동
git checkout -b 브랜치이름
//커밋 아이디로 이동
git chekcout 커밋해시키
//HEAD이용
git checkout HEAD~5
5. HEAD 포인터
- AHEAD
- : 서버로 전송되지 않은 로컬 커밋이 존재함
- BHEAD
- : 서버에서 받지 않은 커밋이 존재함
6. Push
git push 원격저장소별칭 브랜치이름
//업스트림 연결(Tracking 브랜치 지정)
//-u : 최초에 한 번만 저장소명과 브랜치명을 입력하고 그 이후에는 모든 인자를 생략가능
git push -u origin hotfix
//이름을 다르게 push
git push origin 브랜치이름:New이름
//원격 브랜치 복사
git checkout -b 새이름 origin/브랜치이름
7. 브랜치 Fetch
- 단순히 원격저장소별칭/브랜치 포인터만 생성
- 병합 명령 실행해야 새로운 로컬 브랜치에 반영
git fetch
git merge 원격저장소별칭/브랜치이름
//병합하지않고 테스트만 하고 싶을 때
git checktout -b 임시브랜치이름 origin/브랜치이름
8. 브랜치 삭제
- stage가 깔끔할 때만 삭제 허용
- 병합되지 않은 브랜치는 -d로 삭제 불가
- 현재 자신이 있는 브랜치는 삭제 불가
git branch -d 브랜치이름
//강제 삭제
git branch -D 브랜치이름
//remote 브랜치 삭제
git push origin --delete 브랜치이름
'Git' 카테고리의 다른 글
[Opensource_git] 08. 복귀 (0) | 2022.02.17 |
---|---|
[Opensource_git] 07. 병합과 충돌 (0) | 2022.02.17 |
[Opensource_git] 05. 원격저장소 (0) | 2022.02.17 |
[Opensource_git] 04. 커밋 (0) | 2022.02.17 |
[Opensource_git] 03. 깃 개념잡기 (0) | 2022.02.17 |
Comments