HOWTO · Git
Git에서 브랜치를 만들고 사용하는 방법
이 튜토리얼에서는 Git 브랜치를 소개합니다. Git 브랜치가 프로젝트를 구성하는 데 어떻게 도움이 되는지 알아보겠습니다.
이 페이지의 내용
현재 커밋에서 브랜치를 만들려면 git branch feature/login을 실행하세요. 이렇게 하면 브랜치가 생성되지만 현재 브랜치에 그대로 머무릅니다. 한 단계로 브랜치를 만들고 그 브랜치로 전환하려면 git checkout -b feature/login을 사용하세요. Git 브랜치는 커밋을 가리키는 가벼운 포인터이므로, 다른 시작점을 지정하지 않는 한 두 명령 모두 새 브랜치를 현재 브랜치의 커밋에서 시작합니다.
git branch로 브랜치 생성 및 확인하기
로컬 브랜치를 나열하려면 인수 없이 git branch를 실행하세요. Git은 현재 체크아웃된 브랜치 앞에 별표를 표시합니다. 다음 예제에서는 임시 저장소를 만들고, 커밋을 하나 추가하고, 토픽 브랜치를 만든 다음, 로컬 브랜치를 나열합니다. 별표는 지금 체크아웃된 브랜치를 표시합니다. 셸은 종료될 때 임시 저장소를 삭제합니다.
set -eu
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
git -C "$tmp" init -q -b main
git -C "$tmp" config user.name Example
git -C "$tmp" config user.email example@example.com
printf 'starter\n' > "$tmp/README.md"
git -C "$tmp" add README.md
git -C "$tmp" commit -qm "Add starter file"
git -C "$tmp" branch feature/login
git -C "$tmp" branch
feature/login
* main
전환하지 않고 브랜치를 만들려면 git branch feature/login을 실행하세요. 현재 브랜치의 이름을 바꾸려면 git branch -m new-name을 사용하고, 다른 로컬 브랜치의 이름을 바꾸려면 git branch -m old-name new-name을 사용하세요. -m 옵션은 브랜치의 이름을 바꿉니다. 브랜치를 위치 간에 이동시키는 것은 아닙니다.
병합된 로컬 브랜치의 경우, git branch -d feature/login은 Git에 삭제를 요청하며, Git이 병합되지 않은 것으로 간주하면 거부합니다. 커밋이 다른 곳에 병합되지 않았을 수 있더라도 로컬 브랜치 참조를 제거하려는 경우에만 git branch -D feature/login을 사용하세요. 이런 방식으로 브랜치를 삭제해도 다른 참조를 통해 도달할 수 있는 커밋은 지워지지 않지만, 해당 브랜치에서만 도달할 수 있는 커밋은 결국 Git의 정리 과정에서 제거될 수 있습니다.
이러한 명령은 로컬 브랜치에 영향을 줍니다. origin이라는 이름의 원격에서 브랜치를 삭제하려면 git push origin --delete feature/login을 실행하세요. 이렇게 해도 로컬 브랜치는 삭제되지 않습니다. 필요한 경우 별도로 제거하세요.
git checkout -b로 브랜치를 만들고 전환하기
이미 존재하는 브랜치로 전환하려면 git checkout existing-branch를 사용하세요. 현재 커밋에 새 브랜치를 만들고 즉시 그 브랜치로 전환하려면 git checkout -b feature/login을 사용하세요. 이름이 이미 존재하면 Git은 브랜치를 만들 수 없다고 보고합니다. 다른 이름을 선택하거나 기존 브랜치로 전환하세요.
안전하게 가져갈 수 있는 경우, 커밋되지 않은 편집 내용은 브랜치를 전환해도 작업 트리에 그대로 남아 있습니다. Git은 해당 편집 내용을 커밋하지도 않고, 새 브랜치에만 독점적으로 저장하지도 않습니다. 편집 내용은 커밋되지 않은 상태로 남으며 전환한 브랜치에 나타날 수 있습니다. 전환 시 변경 사항이 덮어써질 경우, Git은 중단하고 먼저 충돌을 해결하라고 요청합니다. 작업을 별도로 유지해야 할 때는 전환하기 전에 작업을 커밋하거나 git stash를 사용하세요.
전환한 뒤에는 git status를 실행하여 현재 브랜치를 확인하고 어떤 파일이 수정되었거나 추적되지 않은 상태로 남아 있는지 확인하세요. 예를 들어, git checkout -b feature/login 이후에는 git status가 feature/login을 표시해야 합니다. 호환되는 편집 내용은 커밋하거나, stash하거나, 버릴 때까지 작업 트리 변경 사항으로 계속 나타납니다.