Branch는 대체 무엇일까요?
여러분이 제품 사용설명서를 만드는 사람이라고 상상해봅시다.
현재 이것을 깃 버전관리를 하고 있었는데요.
그렇다면 여러분들의 작업은 순차적으로 버전이 만들어질 것입니다.
그런데 제품이 출시하면서 문제가 생겼습니다.
계약하자는 고객사가 많아졌는데 고객사마다 요구사항이 다 달랐죠.
그렇다면 고객사마다 사용설명서도 달라지겠죠?
지금까지 우리가 작업했던 저장소는 마스터 브렌치 라고 가정하겠습니다.
git branch -M master
우선 각각의 고객사마다 제품설명서 마스터 저장소 디렉토리(A,B,C)를 복사해서 고객사 이름을 붙였죠 (master,애플,구글)
그리고 애플은 애플마다 위한 구글은 구글마다 새로운 버전을 만들었는데.. 뭔가 좀 비효율적? 이라고 생각했습니다.
고객사가 100개면 100개의 디렉토리 관리? 정말 힘들겠죠...
버전관리를 사용하는 이유는 파일이름을 더럽히지 않고 관리하자는 것인데 고객사마다 디렉토리가 만들어지니..
구글에서 작업을 끝내고 보니깐 애플에게도 필요한 내용이네?
그래서 구글 고객사를 위해 만든 설명서 대부분을 날리고 필요한 부분만 꺼내올려 했는데..
설명서를 병합하는 과정에서 생기는 여러가지 문제들을 수동적으로 하나하나 처리하는데는 힘들겠죠?
서로 같은 파일에서 같은 부분을 수정했는데 실수로 덮어쓰기 해서 옛날 작업이 망가지기라도 하는 날에는..
Branch는 같은 뿌리에서 나왔지만 서로 다른 역사를 써가고 있는 버전들을 말합니다.
깃의 브런치기능을 이용하면 위의 여러문제를 해결가능하고요.
다음은 Conflict 입니다.
브렌치와 브렌치를 병합할때 충돌 문제라고 하죠?
A B를 합쳤을때 자동으로 두가지를 합쳐줌 AB
같은 파일을 서로 다른부분이 수정됬을때 깃이 알아서 합쳐줌
같은파일의 같은부분은 어떨까요?
깃이 병합을 중지시키고 병합을 하는사람에게
이 부분 충돌났기 때문에 수동으로 수정해주십쇼? 라고 알려줌
정말 강력한 기능이죠?
'Git' 카테고리의 다른 글
Git CLI merge & conflict 병합 (1) | 2024.01.23 |
---|---|
Git CLI branch (1) | 2024.01.22 |
Git CLI 당겨오기 (pull) (1) | 2024.01.22 |
Git CLI 복제 (Clone) (0) | 2024.01.22 |
Git CLI 백업 (원격 저장소와 연결) (0) | 2024.01.22 |