[Day47] WSL, Linux - Git 사용 2(브랜치)

Validator·2023년 8월 21일
0

Git과 Branch

Git은 소스 코드의 버전 관리 도구다. 버전 관리란 프로젝트를 진행하면서 발생하는 모든 변경사항의 히스토리를 추적하고 관리하는 것을 의미한다. 이 중에서, Git의 가장 강력한 기능 중 하나는 "브랜치(branch)"다.

Branch (브랜치)

  • 브랜치는 일종의 가지다. 메인 라인에서 분기하여 새로운 작업을 진행하거나 기존의 것을 유지하면서 독립적으로 코드나 문서를 수정할 수 있다.
  • 프로젝트에서 여러 사람이 동시에 작업할 때나, 새로운 기능을 추가하거나 버그를 수정하는 등의 작업을 독립적으로 진행하고자 할 때 브랜치를 생성한다.
  • 브랜치를 통해 원본 코드를 건드리지 않고 새로운 변경사항을 시험해 볼 수 있다. 이렇게 해서 안정성을 유지하면서도 새로운 아이디어나 기능을 실험할 수 있다.

기본 브랜치: master 혹은 main

  • Git에서는 기본적으로 "master" 혹은 "main"이라는 브랜치가 생성된다. 최근에는 "main"을 기본 브랜치로 사용하는 추세다.
  • 이 브랜치는 프로젝트의 메인 라인을 나타내며, 일반적으로 안정된 코드만이 이 브랜치에 병합(merge)된다.

브랜치의 사용법

  1. 브랜치 생성
git branch feature_x     # 'feature_x'라는 이름의 브랜치 생성
  1. 브랜치 이동
git checkout feature_x   # 'feature_x' 브랜치로 이동

한 줄로 브랜치를 생성하면서 이동도 가능하다.

git checkout -b feature_x
  1. 브랜치의 목록 확인
git branch               # 모든 브랜치 목록 확인, 현재 브랜치는 별표(*)로 표시된다.
  1. 브랜치 병합

작업이 완료된 브랜치를 메인 라인(예: master 또는 main)에 통합시키려면 병합(merge)을 사용한다.

git checkout master      # 메인 브랜치로 이동
git merge feature_x      # 'feature_x' 브랜치의 변경사항을 현재 브랜치에 병합
  1. 브랜치 삭제
    불필요한 브랜치는 삭제할 수 있다.
git branch -d feature_x  # 'feature_x' 브랜치 삭제 (안전한 삭제 옵션, 병합되지 않은 변경사항이 있으면 삭제되지 않음)
git branch -D feature_x  # 'feature_x' 브랜치 강제 삭제 (병합되지 않은 변경사항이 있어도 삭제)

브랜치와 충돌

  • 두 브랜치에서 동일한 부분의 코드를 수정하고 병합할 경우 '충돌(conflict)'이 발생할 수 있다.
  • 이러한 충돌은 자동으로 해결되지 않으므로, 우리 사람이 직접 코드를 확인하고 어떤 부분을 사용할 것인지 결정해야 한다.

브랜치는 Git의 핵심 기능 중 하나로, 독립적인 작업 영역을 제공해준다. 여러 사람이 협업할 때, 또는 여러 가지 기능을 동시에 개발할 때 유용하다. 브랜치를 잘 활용하면 효율적으로 작업을 진행하고, 충돌 없이 코드를 병합할 수 있다.

0개의 댓글