이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

Tool 사용법/Git

Git 브랜치 방법 (Branch)

이쿠우우 2020. 9. 7. 20:21
반응형

 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

 

 

 

 

 

 

 

 


제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!


 

 

 

 

반응형