- 브랜치는 버전 관리와 소프트웨어 구성 관리에서 버전 관리 하에 놓인 오브젝트를 복제하는 과정, 또는 복제된 오브젝트들을 의미한다.
- 즉 분기점을 생성하여 독립적으로 코드를 변경할 수 있도록 도와주는 모델이다.
우리가 협업 프로젝트를 할 때에는 branch를 사용하게 되는데요. 이는 master(main)에서 바로 코드를 작성하거나 수정하는 것이 좋지 않기 때문입니다.
다시 말하지만 브랜치는 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 우리가 만드는 브랜치들은 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.
또한 이렇게 만들어진 브랜치는 다른 브랜치와 병합(Merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있습니다.
브랜치(Branch)를 통해 하나의 프로젝트를 여러 갈래로 나누어서 관리할 수 있습니다. 각각의 독립된 Branch에서 마음대로 소스코드를 변경하여 작업 한 후 원래 버전과 비교하여 또 하나의 새로운 버전을 만들어 낼 수 있게 됩니다.
그렇다면 우리가 브랜치로 작업을 한 후에 어떻게 다시 하나의 코드로 만들 수 있을까요?
그렇게 하려면 branch를 합쳐야 하는데요 이것을 merge라고 합니다 master에서 병합합니다.
여기서 Master 브렌치란 브렌치중에서 으뜸이 되는 브렌치입니다. 즉 첨에 브렌치를 만들때 master의 모든 내용이 branch로 넘어가게 됩니다. 또한 해당 프로젝트에 대해서 결과물이라 할 수 있는 코드들이 올라라가는 브렌치라고 보시면 됩니다.
1. 브렌치 생성 및 조회
git branch //모든 브랜치 조회
git branch 브랜치명 //브랜치 생성
2.브랜치 전환하기
git checkout 브랜치명 //이전 버전 브랜치 명으로 이동
git switch 브랜치명 //최신버전 브랜치 명으로 이동
3. 브랜치 히스토리 조회
git log //branch들의 히스토리 조회
4.브랜치 병합하기
git merge 브랜치명 //main(master)에서 병합하기
5.병합한 후 남은 브랜치 지우기
git branch -D 브랜치명 //브랜치 지우기
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (main)
$ git branch
* main
git branch를 통해 조회를 한다.
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (main)
$ git branch html-init
html-init이라는 branch를 만든다.
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (main)
$ git branch
html-init
* main
html-init이 만들어 졌는지 확인
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (main)
$ git switch html-init
Switched to branch 'html-init'
html-init branch로 이동
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (html-init)
$ git add index.html
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (html-init)
$ git commit
[html-init 04f157d] feat: Initialize index.html
1 file changed, 8 insertions(+)
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (html-init)
$ git branch
html-init
main
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (html-init)
$ git switch main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
git add -> git commit 후 git switch main 으로 이동 한다.
ghkst@DESKTOP-8SB8F5E MINGW64 ~/Documents/dev/branch-practice (main)
$ git merge html-init
Updating 1332cc8..04f157d
Fast-forward
index.html | 8 ++++++++
1 file changed, 8 insertions(+)
마지막으로 main에서 html-init branch를 병합한다.