일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 분할정복
- 알고리즘
- 백준
- Android
- BOJ
- 이분탐색
- 트리
- 자바
- GIT
- 카카오블라인드
- 코딩테스트
- 문자열다루기
- 안드로이드
- activity
- BFS
- 운영체제
- 코딩
- 생명주기
- 문자열
- 코틀린
- 그래프
- component
- dfs
- 동적계획법
- 세그먼트트리
- 완전탐색
- 스택
- 배열
- 다이나믹프로그래밍
- 프로그래머스
- Today
- Total
HS_development_log
Git의 이해 및 사용 3 - 브랜치란 무엇인가? 본문
브랜치란 무엇인가
Git이 브랜치를 다루는 과정을 이해하기 위해서는 Git의 데이터 저장방법에 대해 알아야 한다
· Git은 커밋하면 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 이전 커밋에 대한 포인터, 메시지 같은 커밋 개체를 저장함
· 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지 알 수 있다
· 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 Merge 커밋은 이전커밋포인터가 여러개있다
· 커밋하면 먼저 루트 디렉터리와 하위 디렉터리의 트리 개체를 체크섬과 함께 저장소에 저장
· 커밋개체를 만들고 메타데이터와 루트 디렉토리 트리 개체를 가리키는 포인터 정보를 커밋 개체에 넣어 저장
· 따라서 필요하면 언제든지 스냅샷을 다시 만들 수 있음
· Git의 브랜치는 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것
브랜치 생성하기
· git branch "" 명령어를 사용하면 브랜치를 만들수있음
· 하지만 Git은 아직 master브랜치를 가리키고있다. git branch 명령은 브랜치를 만들기만하고 브랜치를 옮기지는 않는다.
· git log --decorate 명령어를 사용하면 브랜치가 어떤 커밋을 가리키는지 확인 가능
· git checkout "" 명령어를 사용하면 다른 브랜치로 이동가능 하다.
브랜치는 포인터와 비슷한 개념. commit을 가리키고 있는 것
브랜치 연습 하기
· Git의 브랜치는 어떤 한 커밋을 가리키는 40글자의 SHA-1 체크섬 파일에 불과해서 만들고 지우기가 쉽다
· Git은 프로젝트를 통째로 복사하는작업이 순식간이다. Branch의 능력때문
· 게다가 커밋을 할 때마다 이전 커밋의 정보를 저장하기 때문에 Merge를 할때 편리하다.
· 이런 이유들이 개발자들이 수시로 브랜치를 만들어 사용하는 이유
참고사이트
'Git' 카테고리의 다른 글
Git의 이해 및 사용 2 - Git 기초 (0) | 2020.01.14 |
---|---|
Git의 이해 및 사용 1 - 버전관리 및 Git의 목표 (0) | 2020.01.14 |