지난 포스팅
지난 포스팅에서 push 와 pull 을 사용하여 원격 저장소와 연결했다. 이번에는 branch 와 그와 관련된 명령어들을 공부해볼 것이다.
branch
브랜치는 가지라는 뜻처럼 하나의 코드 버전에서 가지를 뻗어나간다고 생각하면 좋을 것 같다. 아래와 같이 main 이라는 브랜치에 3개의 커밋이 있다고 생각해보자. 여기서 A와 B는 두가지 기능을 추가해보기로 했다. 이때 필요한 것이 브랜치이다.
그렇다면 A는 a브랜치, B는 b브랜치로 나누어 작업을 할 수 있게 된다.
아래와 같은 git branch a 을 통해 a 브랜치를 만들고 git checkout a 를 통해 a 브랜치로 이동할 수 있다.
브랜치로 이동해서 add, commit 을 통해 병렬적으로 작업을 해줄 수 있다. 또한 만약 a 에서 작업하다가 코드가 아예 망가지거나 개발하려던 기능이 필요없어진다면 😂 a 브랜치를 부담없이 삭제할 수도있다. 또한 별개의 작업장에서 작업을 하는 것이기 때문에 main 브랜치가 엉킬 이유가 없어 안전하다.
merge
만약 a가 작업을 하다가 작업을 완료했다면 이것을 main 브랜치에 넣어줘야 할 것이다. 그럴때 사용하는것이 병합(merge)이다.
머지하는 방법은 간단하다 git checkout main 으로 메인브랜치에 돌아간뒤 git merge a 를 해주면 된다.
여기서 살짝 심화로 가면 Fast-Forward 라는 내용이 보이는데 사실 a 의 커밋이 main 브랜치 이후의 커밋을 가지고 있기 때문에 main 브랜치의 커밋이 a 최신 커밋으로 갔다고 할 수 있다.
만약 b 도 작업을 완료했다고 하자. 그렇게 되면 b 브랜치가 모르는 변경사항이 있기 때문에 merge 를 하게되면 결과를 별도로 커밋하게 되기때문에 Merge commit 이 생성되게 된다. 이것을 3-way Merge 라고 한다.
이렇게 된다면 a 와 b 브랜치는 작업을 완료하고 필요가 없어지기 때문에 git branch -d a, git branch -d b 로 브랜치를 지워주면 된다.
git branch -d a
git branch -d b
결론
아마 내가 설명이 부족하여 이게 무슨소리야 할 수 있겠지만 프로젝트를 하다보면 더 잘 이해할 수 있을 것이다. 병합(merge)에 대해서 아주 간단하게 이해하자면 브랜치라는 작업줄기를 나누어 작업을 하고 그 작업을 프로젝트에 합치는 일이라고 볼 수 있다.
'🐈⬛ Git' 카테고리의 다른 글
[Git] 깃모지(gitmoji) 간단 소개 (0) | 2024.01.18 |
---|---|
[Git] Git 시작하기 6 - conflict (0) | 2024.01.17 |
[Git] Git 시작하기 4 - push, pull (1) | 2024.01.16 |
[Git] Git 시작하기 3 - Xcode 프로젝트 넣기, Github 연동하기 (0) | 2024.01.16 |
[Git] Git 시작하기 2 - 프로젝트 만들기 (0) | 2024.01.15 |