이번 글에서는 저번 글에 이어 유노코딩 7강 브랜치 관리하기 강의 들은 내용을 복습해보도록 하겠습니다.
우선 git의 branch가 무엇인지부터 알아보죠. 역시 챗GPT에게 물어봤습니다.
정리하자면, Git의 브랜치(branch)는 같은 프로젝트 내에서 독립적으로 작업할 수 있는 분리된 작업 영역으로, 기존 코드를 손상시키지 않고 새로운 기능을 개발하거나 버그를 수정하는 작업을 할 수 있게 해줍니다.
Git의 브랜치를 그림으로 표현하면 다음과 같습니다.
참고로 master는 깃 프로젝트를 처음 시작할 때 만들어지는 기본 브랜치로 여기서 부터 여러 브랜치를 분기하며 작업할 수 있다고 하네요(master 대신 main이라는 이름을 쓰는 경우도 있다고 합니다).
브랜치가 이어지는 과정의 예로, 각각의 브랜치에 레고블록으로 만든 건축물의 정보를 기억해두고, 그 기억을 토대로 과거 이전의 정보로 돌아가거나 새로운 레고 블록을 더하는 작업을 브랜치 간의 연결과 이동으로 여러 명이 동시에 혹은 한 사람이 여러 번 진행할 수 있게 됩니다. 아래처럼 말이죠.
이제 실습을 해보겠습니다. 먼저 'git_branch'라는 이름의 새로운 파일을 만들어주었구요. 해당 파일의 git 시스템에 들어가서 git init 명령어를 입력해줍니다.
- git 시스템에 들어가는 방법 설명
먼저 $ git branch를 사용하여 현재 브랜치 목록을 봅시다.
아무것도 뜨지 않죠? 그럼 브랜치의 기본이 되는 master를 만들기 위해 $ touch를 이용해 context.txt 파일을 만들어주겠습니다.
$ touch context.txt
다시 $ git branch를 입력해보면, master 브랜치가 만들어졌다는 것을 알 수 있습니다.
그럼 master에 new branch인 'dev'라는 이름의 브랜치를 추가해보겠습니다. 다음과 같이 branch 뒤에 지정하고 싶은 브랜치명(ex. dev)을 입력하면 됩니다.
$ git branch dev
dev branch가 추가되었네요. 그럼 이제 현재 제 위치인 master에서 dev 브랜치로 이동해서 작업을 해보고자 합니다.
참고로 현재 제 위치는 위의 그림에서 (master)까지로 되어있으니 master에 있음을 확인할 수 있습니다. 여기서 dev로 이동하려면 $ checkout 명령어를 사용해줍니다.
$ git checkout (이동하고자 하는 브랜치명)
저의 경우에는 $ git checkout dev를 입력하니 (master)에서 (dev)로 바뀌었음을 확인할 수 있습니다. $ git branch를 입력해서 *의 위치를 보고도 현재 위치를 확인할 수도 있습니다.
여기 dev 위치에서 'content2.txt' 파일을 $ touch 명령어로 만들어보고, $ nano 명령어로 해당 파일의 에디터 창을 켜보겠습니다.
$ touch content2.txt
$ nano content2.txt
여기다가 "파일 만들기"라고 입력하고 저번처럼 Ctrl + X -> y -> enter를 차례로 입력해 에디터 창에서 나갔습니다. 이후 저장소에 수정사항을 저장해줍니다.
자세히 보면 "my commit on dev"는 dev에 저장되어 있고, "first commit"은 master에 저장되어 있는 것을 확인할 수 있습니다. oneline으로 간단하게 봅시다.
여기서 다시 제 위치를 master로 이동하고 oneline을 확인해보겠습니다.
$ git checkout master
$ git log --oneline
dev 상위에 있는 master 입장에서는 dev가 관계 없는 것이기에, dev에서 만든 "my commit on dev"는 보이지 않게 됩니다. 요런 식으로 오른쪽에서 왼쪽으로 가면 노란 색이 없어지는 것처럼 말이죠.
이제 dev에서 실험한 내용을 master에 합쳐보려고 합니다. 이때는 master 브랜치 위치에서 $ git merge dev 명령어를 사용해줍니다.
git merge (붙이고자 하는 브랜치명)
이제 oneline을 다시 확인해봅시다.
master에 dev가 잘 붙었음을 확인할 수 있습니다. $ ls로 dev에 있던 content2.txt가 master의 위치에서 등장했음을 확인할 수도 있습니다.
이렇게 실험용 브랜치를 만들고, 원본에 다가 병합하는 작업까지 했으면 이제 실험용 브랜치를 삭제해줍니다. branch 뒤에 '-d' 옵션과 삭제하고 싶은 브랜치 명을 입력하면 됩니다.
git branch -d dev
이렇게 $ git branch를 입력했을 때 dev가 사라지고 master만 나타남을 확인할 수 있습니다.
이것으로 유노코딩 7강 학습 내용 복습을 마치고 다음은 마지막 강의 8강 깃허브 원격 저장소 관련 내용 정리로 돌아오겠습니다.
깃 공부를 원하시는 분은 아래 유노코딩 유튜브 영상 "깃과 깃허브가 처음인 당신에게" 시리즈를 보면 하나하나 쉽게 설명해주니 참고바랍니다. 감사합니다!