🌳 레포지토리(Repository)
레포지토리란 프로젝트의 모든 파일과 그것의 변경 이력(history)을 저장하는 곳으로, 저장된 위치에 따라 로컬 또는 원격 레포지토리가 있습니다.
로컬(local) 레포지토리는 우리의 컴퓨터 안에 저장하는 공간이고,
원격(remote) 레포지토리는 GitHub, GitLab, Bitbucket과 같은 서비스를 통해 인터넷에 호스팅된 저장 공간입니다.
레포지토리의 주요 기능으로는
- 모든 디렉토리와 파일의 버전을 관리
- 커밋과 같은 모든 변경 이력(history)를 추적
- 브랜치나 태그를 통해 여러 버전의 코드 베이스(code base)를 관리
가 있습니다.
코드 베이스(code base)란, 소프트웨어를 빌드할 수 있는 소스 코드가 저장된 저장소입니다.
- 위키백과
🌳 브랜치(Branch)
브랜치란 레포지토리 내에서도 독립적인 작업을 할 수 있도록 만들어진 하나의 선형적인 버전 기록입니다.
기본적으로 Git의 레포지토리는 main이라는 기본 브랜치를 가지고 있습니다.
기존의 코드를 변경하지 않고 기존의 코드에서 별도의 브랜치를 생성하여 작업을 수행할 수 있습니다.
브랜치의 주요 기능은
- 메인 코드 베이스와 독립적인 작업 환경 제공
- 서로 다른 브랜치에서의 병렬적인 작업 처리
- 브랜치 병합을 통한 변경 내용의 통합
이 있습니다.
브랜치를 생성하여 작업하는 흐름은 다음과 같습니다.
1) 터미널에서 새로운 브랜치를 생성합니다. 여기서는 새로운 브랜치의 이름을 'new_branch'라고 짓겠습니다.
git branch 원하는_브랜치_이름(ex/new_branch)
2) 해당 브랜치로 이동합니다. 현재 위치한 브랜치 = 머물던 브랜치에서 체크아웃 한다고 생각하면 됩니다.
git checkout new_branch
+) 1, 2번을 동시에 수행하려면 = 새로운 브랜치를 생성한 뒤 바로 이동하고 싶다면 아래와 같이 쓸 수 있습니다.
git checkout -b new_branch
3) 해당 브랜치에서 작업 후 변경 사항을 저장합니다.
git add .
git commit -m "여기에 변경사항에 대한 커밋 메시지를 적습니다"
4) 기존의 main 브랜치에 방금 작업한 브랜치의 내용을 병합합니다.
먼저 기준이 될 브랜치로 이동한 뒤, 원하는 브랜치를 -> 기준 브랜치로 병합합니다.
git checkout main
git merge new_branch
위의 명령어를 실행하면 메인 브랜치에 new_branch 브랜치가 병합됩니다.
이렇게 브랜치를 사용하면 여러 작업을 독립적으로 수행하고 안전하게 병합할 수 있습니다.
따라서 코드 베이스의 안정성과 협업의 효율성 또한 높일 수 있습니다.
Git의 브랜치는 눈에 보이지 않는 추상적인 개념이기 때문에 처음에는 동작 방식이 헷갈릴 수 있습니다.
이때 브랜치의 생성하고 병합하는 과정을 애니메이션으로 보며 연습할 수 있는 Learn Git Branching이라는 게임이 있습니다.
그래픽은 조금 투박하지만 설명에 따라 천천히 코드를 입력하다 보면 브랜치의 개념이 어느 정도 이해될 것입니다.
간단한 게임이니 해보시는 것을 추천드립니다!
읽어주셔서 감사합니다:)