📕오늘 학습한 내용
Branch 이해하기
Branch란?
![](https://velog.velcdn.com/images/one_ik/post/79b3289e-ac03-456d-b798-be0b7ba72559/image.png)
- 메인 프로젝트를 가상으로 복사한 것
- 여러 개발자들이 동시에 작업할 수 있도록 도와주는 기능이다
Branch는 언제 생성해야할까?
- 새로운 기능을 개발할 때
ex) feature/login, feature/select-product 등
- 출시를 준비할 때
ex) release-1.3, release-1.4 등
- 출시 후 긴급히 수정해야할 때
ex) hotfix-1.2.1 등
Branch를 생성하면 바로 병렬 사용 가능할까?
- 아직 커밋하지 않았다면, 복사된 이전 브랜치의 상태를 그대로
복사해온 것이기 때문에 가리키는 위치 또한 같다.
- 복사한 브랜치에 커밋을 하게 되면 새로운 커밋을 가리키는 새로운 위치(pointer)를 가지게 되므로 병렬 사용이 가능해진다.
Git Branch 전략
- 브랜치를 규칙 없이 사용한다면 어떤 목적으로 생성된건지,
어떤 커밋에서 분기된건지 파악하기가 쉽지 않다
- 따라서 브랜치를 효과적으로 관리하기 위한 워크플로우가 필요한데,
그것을 Git Flow라고 한다
- Git Flow는 크게 Fast forward와 3-ways 2가지가 나뉜다
Fast forward
![](https://velog.velcdn.com/images/one_ik/post/f2970f99-b38b-4495-a134-30a4e7ee2f81/image.png)
- main branch와 feature branch를 생성한 시점부터 feature branch에만 추가 구현 한 뒤 main branch와 병합하는 전략
3-ways
![](https://velog.velcdn.com/images/one_ik/post/4193e314-42e1-4649-abc9-1d682dff154c/image.png)
- main branch와 feature branch를 생성한 시점부터
main branch와 feature branch 모두 추가 구현한 뒤 서로 비교하여
바뀐 것을 정리하여 병합하는 전략
🥺어려웠던 점
❗느낀 점
Github... 생각보다 더 어렵다. pointer라는 개념은 아직 이해가 잘 안되고 실습하는 과정에서는 따라 하면 되니 merge 하는 과정이 쉽게 진행됐는데 혼자 한다면 헤매는 부분이 많을 것 같다. 더 부딪쳐 봐야겠다.
그리고 오늘부터 웹의 흐름을 이해하기 위해 HTTP 완벽 가이드라는 책을 읽기 시작했다. 아직 HTTP 개관 밖에 읽지 못했지만, 모르는 단어투성이라 이해하는데 시간이 오래 걸리는 것 같다.
그래도 이번에 개발 습관을 만들자고 마음먹은 만큼 포기하지 말고 끝까지 달려보자!