일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오프로젝트 100
- 자바스크립트 jQuery
- 다크웹
- 오라클
- 자바스크립트 node
- 랜섬웨어
- 카카오프로젝트
- Oracle SQL
- 자바스크립트 API
- oracle db
- php
- 보안뉴스요약
- 보안뉴스
- 자바스크립트 prototype
- 자바스크립트 element api
- 카카오프로젝트100
- 보안뉴스 한줄요약
- GIT
- 자바스크립트
- 보안뉴스 요약
- 자바스크립트 객체
- javascript
- python
- 자바스크립트 기본 문법
- 깃허브
- oracle
- 보안뉴스한줄요약
- ES6
- 파이썬
- numpy
- Today
- Total
FU11M00N
[ git & github ] Git Branch 동작과정 및 사용하기 본문
이 포스팅은 구름 에듀 강좌 나동빈 선생님 강의 "Git으로 시작하는 협업 및 오픈소스 프로젝트" 를 기반으로 작성되었습니다.
edu.goorm.io/learn/lecture/11528/git으로-시작하는-협업-및-오픈소스-프로젝트/info
구름EDU - 모두를 위한 맞춤형 IT교육
구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/
edu.goorm.io
출처: https://nevertrustbrutus.tistory.com/348 [FU11_M00N]
- Git Branch
깃은 동시에 여러 개발자들이 프로젝트에서 각기 다른 기능을 개발할 수 있도록 브랜치(Branch) 기능을 제공합니다.
서로 다른 브랜치는 작업 함에 있어서 서로에게 영향을 받지 않는다는 점에서 마음 놓고 서로 다른 개발 작업을 수행할 수 있습니다.
기본적으로 깃을 저장소로 만들면 자동으로 마스터(Master)브랜치가 생성 됩니다.
이 브랜치는 일반적으로 배포가 가능한 수준의 안정화된 버전을 포함하고 있는 브랜치입니다.
- Branch 동작과정
프로젝트에서 주 버전을 마스터 브랜치라고 합니다. (자동 생성된다.)
마스터 브랜치는 항상 안정화 되어 있어야 하고, 언제나 배포가 가능해야 하기 때문에 위와 같은 모든 작업을 마스터 브랜치에서 할 수가 없습니다.
이럴 경우 브랜치를 나누어 각기 기능에 맞게 개발을 하는 것입니다. 즉 각 브랜치로 개발을 하여 마스터 브랜치에 병합을 시키는 구조인 것입니다.
병합을 할 때는 Merge 가 수행된다.
Merge가 수행되기 전까지는 안정적으로 배포가 이루어지고 있다가 모든 기능이 합쳐진 이후에 다시 배포할 수 있으므로 개발의 안정성이 매우 뛰어나 진다는 장점이 있습니다.
> 통합 브랜치 : 배포가 가능한 수준의 브랜치로 일반적으로 마스터(Master) 브랜치
> 토픽 브랜치 : 특정한 기능을 위해 만들어진 브랜치로 일반적으로 마스터(Master) 브랜치 이외의 다른 브랜치
- Branch 사용하기
먼저 git branch라는 명령어를 입력해 현재 몇개의 브랜치가 존재하는지 확인해보겠씁니다.
자동으로 존재하는 Master브랜치만 존재합니다. 브랜치를 하나 추가해보겠습니다.
git branch "추가할 브랜치 명"
브랜치 명 앞에 * 표시가 현재 내가 존재하는 브랜치 입니다.
현재 위치를 Master branch가 아닌새로 생성한 브랜치로 이동하고 싶다면
"git checkout "브렌치 이름"" 명령어 를 써주면 됩니다.
현재 가르키고 있는 브랜치가 바뀐 것을 확인할 수 있습니다.
이 상태에서 소스코드를 변경해보도록 해보겠습니다.
def add(a,b):
return a+b
def sub(a,b):
return a-b
def mul(a,b):
return a*b
우선 test.py를 작성하겠습니다.
이후 git add와 git commit 으로 커밋 시켜줍니다.
변경 후 commit log를 확인해보면 위와같이 출력됩니다.
현재 헤드가 새로 만든 브랜치인 "develop"을 가르키고 있습니다.
그리고 커밋이 제대로 이루어진 것을 확인 할 수 있습니다.
하지만 origin 즉 원격지 주소에서는 master 를 가르키고 있습니다.
이건 반영이 안된 것입니다.
즉, 현재 브랜치에서만 적용이 되고 마스터 브랜치에서는 변경이 적용되지 않은 것입니다.
여기서 develop브랜치의 변경 사항을 master브랜치에 합치려면 위에서 언급한 Merge를 수행하면 됩니다.
위의 사진과 같이 다시 master branch 를 가리키게 하고, merge 명령을 수행합니다.
다시 로그를 확인해보면 이젠 헤드가 마스터와 develop을 가르킵니다.
즉 수정된 코드를 반영하였다는 것입니다.
원격지 저장소에도 수정내역을 적용하고 싶으면 git push 명령을 입력해주면 됩니다.
수정내역이 적용된 것을 확인할 수 있다.
모든 수정이 끝난 후 git branch를 해보면 아직 develop브랜치가 남아있습니다.
병합이 끝나서 역할을 다한 브랜치는 제거해주면 됩니다.
git branch -d "삭제할 브랜치 명"
제거 후 브랜치 리스트를 확인해보면 처음과 같이 Master 하나만 존재한다.
'Git' 카테고리의 다른 글
[ git & github ] Git 원격 저장소(Remote Repository) 관리 하기 (0) | 2021.02.18 |
---|---|
[ git & github ] Git Branch 충돌(Conflict) 처리하기 (0) | 2021.02.18 |
[ git & github ] Git Commit 내역 수정하기. (0) | 2021.02.18 |
[ git & github ] Git 저장소에 코드 수정 반영 (0) | 2021.02.18 |
[ git & github ] Git 동작 원리 (0) | 2021.02.18 |