Git 브랜치 방법 (Branch)
master branch는 배포용.
client들이 직접 사용하게 되는 배포 version.
그래서 필요한 기능은 병렬적으로 개발하게 되는 데 사용되는 기능이 branch
여러 버전을 관리할 수 있는 구조
1. 브랜치 생성
1.1. 먼저 현재 브랜치 목록을 확인
[명령어]
git branch
현재 프랜치에는 ( * ) 가 붙음
이것은 브랜치가 master 것이고 현재 프랜치고 master 임을 나타내는 것
1.2. 브랜치 생성
[명령어]
git branch <브랜치 이름>
예)
git branch subTest01
1.3. 브랜치 지점 이동
[명령어]
git checkout <이동하고자하는 브랜치 이름>
예)
git checkout subTest01
1.4. 참고) 위 명령을 한번에 처리
[명령어]
git checkout -d subTest01
1.5. 작업 완료 후 브랜치 목록 확인
git branch 명령을 하면 생성된 branch를 확인할 수 있음
2. 브랜치에 푸시
2.1.작성한 파일 git에 추가 커밋
[명령어]
git add <대상파일>
git commit -m "<커밋 내용>"
2.2. branch에 푸시
[명령어]
git push <원격 저장소 이름> <브랜치 이름>
3. 브랜치에서 풀
3.1. 현재 사용하고 있는 브랜치를 확인
[명령어]
git branch -v
3.2. 현재 사용하고 있는 브랜치에 remote 되어있는 branch를 pull 해옴
[명령어]
git pull <원격 저장소 이름> <브랜치 이름>
4. 브랜치 병합
브랜치에서 개발하던 중 구현과 테스트가 완료되면 master 브랜치에 통합해야 함
이때 현재 브랜치와 master 브랜치의 통합 작업을 병합이라 함
master 브랜치란?
git 브랜치의 최초 중심이 되는 브랜치
4.1. 현재 분기를 master로 전환
[명령어]
git checkout master
4.2. master 브랜치와 병합하고자 하는 브랜치를 병합
[명령어]
git merge <master 브랜치와 병합하고자 하는 브랜치 이름>
4.3. 병합이 완료된 master 브랜치를 원격 저장소에 push 하면 작업 완료
[명령어]
git push <원격 저장소 이름> <브랜치 이름>
예)
git push origin master
4. 브랜치 삭제
[명령어]
git branch -d subTest01
예)
git branch -d <삭제하고자 하는 브랜치 이름>
5. 브랜치 병합 merge와 rebase 차이
상위에서 브랜치 병합은 merge 명령을 통해서 진행함
하지만 추가 rebase 명령도 존재함
merge
브랜치에서 작업을 하는 중
master 브랜치에서도 많은 commit 이 발생했을 경우
merge를 하게 되면
새로운 commit 시점이 생기면서
필요 없는 object와 log 가 많이 발생하게 됨
그래서 merge log 가독성에 크게 악영향을 미칠 수 있음
rebase
말 그대로 re-base
즉 branch의 base를 다시 설정한다는 의미
merge에 비해 특정 상황에서 보다 깨끗한 log를 만들 수 있음
상황 설명으로
브랜치에서 작업을 하는 중
master 브랜치에서도 많은 commit 이 발생했을 경우
5.1. base를 다시 설정하고자하는 branch 로 이동
git checkout <브랜치 이름>
5.2. 해당 브랜치의 base 를 현재 commit 된 master로 이동
git rebase master
5.3. 현재 분기를 master로 전환
git checkout master
5.4. master 브랜치와 병합하고자 하는 브랜치를 병합
git merge <master 브랜치와 병합하고자 하는 브랜치 이름>
5.5. 병합이 완료된 master 브랜치를 원격 저장소에 push 하면 작업 완료
git push <원격 저장소 이름> <브랜치 이름>
예)
git push origin master
제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!
'Tool 사용법 > Git' 카테고리의 다른 글
Git 코드를 잠깐 저장하고 다른 브랜치로 이동하기 (0) | 2020.09.07 |
---|---|
Git add, commit, push 취소하기 (0) | 2020.09.07 |
Git 원격 저장소에 pull하는 과정 (0) | 2020.09.07 |
Git 원격 저장소에 Push 하는 과정 (0) | 2020.09.07 |
Git 이란? (0) | 2020.09.07 |