티스토리 뷰
브랜치(Branch) ?
git 은 동시에 여러 개발자들이 프로젝트에서 각기 다른 기능을 개발할 수 있도록 브랜치(Branch) 기능을 제공합니다.
서로 다른 브랜치는 작업을 함에 있어서 서로에게 영향을 받지 않는다는 점에서 마음 놓고 서로 다른 개발작업을 수행할 수 있습니다.
Branch 의 동작 과정
브랜치의 동작 과정은 다음과 같은 예시로 표현할 수 있습니다.
기본적으로 git 저장소를 만들면 master branch가 생성됩니다. 이 branch 는 일반적으로 배포가 가능한 수준의 안정화된 버전을 포함하고 있습니다.
그래서 별도의 브랜치를 만들어 ( git branch "브랜치 이름" ) 사용하고자 한다면
체크아웃 명령어 ( git checkout "브랜치 이름") 를 이용해야 합니다.
위 그림의 브랜치 사용 예시는 다음과 같습니다.
- Master Branch
- git repository 의 기본 branch
- 지속적으로 배포 가능한 수준의 안정성을 확보할 필요가 있음
- Develop Branch
- 기존 버전에 새로운 기능을 추가 개발하기 위해 새로 만든 branch
- Bug Fix Branch
- 기능 추가 작업과 동시에 기존 버전에 버그가 발견되어 이를 fix 하기 위해 만든 branch
이렇게 2개의 추가적인 branch 를 두어 버그 수정과 기능 추가를 동시에 진행할 수 있습니다.
더불어 master branch 에서는 합치기(merge) 가 수행되기 전까지는 안정적으로 배포하는 상태가 유지되고,
모든 기능이 합쳐진 이후에 다시 배포할 수 있으므로 개발의 안정성이 매우 뛰어나게 됩니다.
이러한 branch 는 다음과 같은 이름으로 분류합니다.
- 통합 브랜치 : 배포가 가능한 수준의 브랜치로 일반적으로 마스터 브랜치를 의미
- 토픽 브랜치 : 특정한 기능을 위해 만들어진 브랜치로 일반적으로 마스터 브랜치 이외의 다른 브랜치를 의미
Branch 사용 해보기
일단 프롬프트창에서 내 repository 를 clone 한 폴더의 위치로 이동합니다.
새로운 브랜치를 만들고 싶을 때에는
git branch "브랜치 이름"
명령어를 이용합니다. 저는 develop 이라는 이름의 브랜치를 만들어보겠습니다.
이후 현재 내 repository 의 브랜치가 어떻게 구성되어 있는지 확인하고 싶다면
git branch
명령을, 이 중 특정 브랜치로 전환하고 싶다면
git checkout "전환하고 싶은 브랜치 이름"
명령어를 이용합니다. 이동 후에는 HEAD가 해당 브랜치로 이동하게 됩니다.
위 그림처럼 HEAD가 develop 브랜치로 전환된 상태에서 기존 소스코드를 수정해보겠습니다.
이 후에 git add -> git commit 을 진행해 주시면 현재 HEAD 가 가리키고 있는 브랜치인 develop 브랜치에서 커밋이 진행됩니다.
git log
명령어로 로그를 확인해 보시면 master브랜치의 윗 부분에 develop 브랜치가 존재하는 걸 확인할 수 있습니다.
이제 마스터 브랜치로 이동
git checkout master
해서 develop 브랜치를 병합(Merge) 할 수 있습니다.
git merge develop
병합 후 log 를 확인 git log 해 보면 마스터 브랜치와 develop 브랜치가 동일한 커밋 내역을 가지게 된 걸 확인할 수 있습니다.
푸시까지 진행해 주시면 원격지 저장소인 git hub에도 반영되는 것을 확인할 수 있습니다.
물론 git push 명령은 master branch 에서 가능합니다!!
git push
이 후 develop branch는 자기 역할을 다 했으므로 d 옵션을 넣은
git branch -d "제거할 브랜치 이름"
명령어를 통해 제거하도록 하겠습니다.
'SW Project > GitHub' 카테고리의 다른 글
commit 메시지 변경하기 (0) | 2019.11.30 |
---|---|
git에서 commit 내역 수정하기 (0) | 2019.11.30 |
소스코드 수정 후 git 저장소에 반영하기 (0) | 2019.11.30 |
GitHub 의 동작 원리 (0) | 2019.11.30 |
GitHub 시작, 설치 및 기본 사용법 (0) | 2019.11.30 |
- Total
- Today
- Yesterday
- select
- INSERT
- Delete
- .
- 캡슐화
- Update
- java
- jdbc
- 객체지향
- 객체
- ojdbc6.jar
- view
- Scott/Tiger
- 추상화
- JDBC 프로그램 작성단계
- controller
- java 환경설정
- model
- JdbcTemplate
- 다형성
- 상속
- OOP
- MVC
- Oracle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |