일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- add
- Git
- git branch
- Pathology
- DFS
- WSI
- Merge
- 백준
- Backpropagation
- 오차역전파
- cv
- 밑바닥부터 시작하는 딥러닝 1
- 병리
- 그래프이론
- BFS
- git commit
- Branch
- computer vision
- 딥러닝
- 분할정복
- Segment Anything
- git add
- Python
- 그래프
- git merge
- conflict
- Heap
- forward
- 파이썬
- 알고리즘
- Today
- Total
나만의 길
[Git] 03-1. branch, git 저장원리(Object) 본문
git의 핵심적인 기능인 branch에 대해 배워보겠습니다. branch에 대해 배우기 앞서 이전 글에서 언급했던 git이 데이터를 어떻게 저장하는지, 어떤 메카니즘으로 동작하는지에 대해 간단하게 설명하고 다음 글인 실습파트에서 branch의 기능적인 요소에 대해 자세하게 배워보겠습니다..
git 저장방법
Git은 데이터를 변경사항으로 기록하지 않고, 일련의 snapshot으로 기록합니다. snapshot에 대한 내용은 이전 글 add, commit 부분을 참고해 주세요!
[Git] 02-1. git add, git commit 개념
오늘은 git add, commit에 대해 설명해보겠습니다. 굉장히 중요하고, git에 핵심적인 원리를 담고 있는 시작부분이라 생각됩니다. 기초부터 차근차근 배워보겠습니다! git add, commit add는 파일들을 stage
yunway.tistory.com
스냅샷에 대한 포인터 정보, commit의 포인터 정보들을 Object(개체)에 저장합니다. 앞서 commit을 보면 일련의 SHA-1으로 표기된 값들이 모두 포인터 정보이고 해당 정보들은 Object파일에 저장됩니다.
이러한 Object파일에는 크게 3가지 종류의 구성이 있습니다.
1. blob : 파일의 구성
2. tree : blob의 정보
3. commit
어떤가요? 우리가 이전에 배웠던 commit도 사실 Object를 이루는 구성요소 중 1개입니다. 그만큼 중요성이 높은 거죠. 아래는 Git 공식문서에서 제공하는 사진입니다.
해당 그림을 보면, Commit에 tree의 주소값이 있고 이는 tree를 포인팅 합니다. tree는 3개의 blob 주소값을 가지고 있고 마찬가지로 포인팅 합니다. 즉, git은 파일을 업데이트할 때마다 새로 저장하는 것이 아닌, 객체를 통한 할당을 합니다. 그렇기 때문에 이전에 협업 시스템보다 훨씬 가벼워진 거죠!
그렇다면 오늘 배운 branch는 무엇일까요? 혹시 지금껏 학습하면서 git bash에서 master라고 적힌 것을 아마 보셨을 겁니다. master는 git init을 하는 순간, git에서 제공해 주는 기본 branch입니다. 우리는 이미 branch를 사용하고 있었습니다.
그렇다면 branch를 왜 사용하는 걸까요?
branch
여러분들이 개발을 하고 있거나, 하시게 된다면 아마 혼자보단 팀을 꾸려 프로젝트를 진행하는 경우가 많습니다. 그렇다면 공동의 개발을 각자 분야별로 나누어서 진행하는 것이 효율적이겠죠? 바로 여기서 비롯된 것이 바로 branch입니다. 한글로는 가지라는 의미입니다. 말 그대로 하나의 가지를 만들어 자신만의 작업을 진행하고 이후 merge라는 명령을 통해 1개의 branch로 합치게 됩니다.
해당 그림을 보시면 최종적으로 master라는 1개의 branch가 되고 이를 후에 배포하게 됩니다. 하지만 branch도 잘 사용해야 conflict라는 충돌이 발생하지 않습니다. 혹은 발생하더라도 원리를 이해하면 잘 해결할 수 있습니다. 해당 내용은 이후 포스팅에서 자세하게 다루겠습니다. 오늘은 branch의 사용이유와 git의 저장원리에 대해 배워봤습니다.
궁금하신 점이나 잘못된 부분은 언제든 피드백 부탁드립니다!
'Git' 카테고리의 다른 글
[Git] 03-3. git merge, conflict 해결 (1) | 2023.07.05 |
---|---|
[Git] 03-2. git branch 실습 (0) | 2023.07.02 |
[Git] 02-2 git add, git commit 실습 (0) | 2023.06.30 |
[Git] 02-1. git add, git commit 개념 (0) | 2023.06.29 |
[Git] 01. git init 저장소 생성 (개념 & 실습) (0) | 2023.06.28 |