1. 브랜치(branch)란?
branch는 영어로는 '나뭇가지', 여기서는 '분기'(동일한 것은 그대로 두고 나뭇가지처럼 필요한 것을 분기한다고 합니다.)
◎ 필요한 이유
▷ 제품의 사용 설명서를 만들고 버전 관리는 깃으로 합니다. 제품이 출시되기 전 개발 순서에 따라 사용설명서 작성
▶ 제품 출시 후 문제가 생기는데 고객사마다 추가 요구 내용이 달라질 수 있기 때문에 필요합니다.
▷ 고객사의 요구 사항을 반영하다보면 제품과 사용 설명서가 달라져야 합니다.
기존 | A | B | C | D | |||
ms | A | B | C | D | ME | ||
A | B | C | D | GE | GF | GH | |
apple | A | B | C | D | AE | ||
main | A | B | C | D | E |
해결책1
→ 처음 작업했던 장소 (main) 전체를 여러 개 복사해서 고객사 (apple, google, ms) 마다 이름을 붙인 후 저장소마다 버전 관리를 따라 하는 방법
→ 비효율적이고 고객사마다 디렉터리를 복사하면 출시 전까지 만들었던 내용은 동일하기 때문에 자료가 중복
→ 버전 관리 시스템 장점은 파일 이름을 더럽히지 않는 것이지만 해당 해결책은 고객사마다 이름이 다름
→ 또한 작성했던 코드를 복사해서 다른 고객사의 디렉터리에 붙여 넣은 후 커밋하면 문제 발생 가능성 있음.
→ 이렇게 되면 기존에 작성했던 코드의 오류가 발생하거나 수정한 내용이 의도치 않게 바뀌거나 사라질 수 있습니다.
따라서 이 방법은 좋은 해결책이 아니므로 브랜치가 필요합니다.
◎ master 브랜치? main 브랜치!
▷ 깃으로 버전 관리를 시작하면 기본적으로 main 브랜치가 만들어집니다.
▷ 옛 버전의 깃, 최신 깃을 설치했더라도 메인 브랜치를 main으로 지정하지 않으면 master로 나타날 수도 있습니다.
▷ main, master 브랜치는 이름만 서로 다를 뿐, 깃을 사용할 때 기본이 되는 브랜치라는 개념은 같습니다.
▷ master라는 이름이 master(주인)-slave(종)라는 인종차별 느낌 때문에 main으로 바꿨습니다.
▷ 이미 깃을 사용했으면 브랜치 이름은 master고 main과 master 브랜치가 뒤섞여 헷갈릴 수도 있습니다.
▷ 추후에는 main이 자연스러워질 것입니다.
◎ 브랜치 기능
▷ 깃으로 버전 관리를 시작하면 기본적으로 main 브랜치가 만들어집니다.
▷ 사용자가 커밋할 때마다 main 브랜치는 어떤 것이 최신 커밋인지 정보를 가집니다.
▷ 즉, 브랜치는 커밋을 가리키는 포인터와 비슷합니다.
▷ 기존 파일은 main 브랜치에 그대로 유지, 새 브랜치에서 기존 파일 내용 수정 및 새로운 기능을 추가할 수 있습니다.
▷ 이렇게 main 브랜치에서 새 브랜치를 만드는 것을 '분기한다' 라고 합니다.
새 브랜치에서 원하는 작업을 다 끝냈다면 새 브랜치에 있던 파일을 원래 main 브랜치에 합칠 수 있음.
이렇게 분기했던 브랜치를 main 브랜치에 합치는 것을 병합(merge)한다고 합니다.
즉, 기본 파일은 main 브랜치에 그대로 둔 상태에서 새로운 브랜치를 분기한 후 수정이나 추가 작업을 하고 문제없이 완성되었다면, 새 브랜치 내용을 main 브랜치와 병합합니다.
역시 글로만 적으니까 이해하기 어렵네요,, 바로 다음 글에서 실전 연습으로 기능을 한 번 다뤄보죠!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'협업툴 > git(hub)' 카테고리의 다른 글
[git/git hub] SSH 원격 접속이란? (0) | 2023.01.03 |
---|---|
[git/git hub] 깃허브 시작하기 (0) | 2023.01.03 |
[git/git hub] 브랜치 사용하기 (0) | 2023.01.03 |
[git/git hub] 깃으로 버전 관리하기 (0) | 2023.01.03 |
[git/git hub] 깃이란? (0) | 2023.01.02 |