Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

Git 오류 해결 가이드: 체크아웃 시 추적되지 않은 파일이 덮어써질 때

Git으로 프로젝트의 변경 사항을 관리하다 보면 여러 가지 오류를 만나게 됩니다. 특히 브랜치를 전환할 때 다음과 같은 오류 메시지를 자주 접하게 됩니다.

error: the following untracked working tree files would be overwritten by checkout

[파일 목록]

Please, commit your changes or stash them before you can switch branches.

이 오류는 현재 브랜치에 존재하는 파일이 전환하려는 브랜치에서도 변경된 상태일 때 발생합니다. 다행히 해결 방법은 간단합니다. 오류 메시지의 마지막 문장이 안내하는 대로, 변경 사항을 커밋하거나 스태시하면 됩니다.

방법 1: 변경 사항 커밋하기 (Commit)

변경 사항을 커밋하려면 아래 명령어를 입력합니다.

git commit -m "여기에 의미 있는 커밋 메시지를 입력하세요"

커밋이 완료되면 워킹 트리가 깨끗해집니다. 이후 git checkout <브랜치-이름> 명령으로 안전하게 브랜치를 전환할 수 있습니다.

방법 2: 변경 사항 스태시하기 (Stash)

git stash를 사용하면 커밋할 준비가 될 때까지 변경 사항을 임시로 저장할 수 있습니다. 스태시는 변경 사항을 보관하지만, 사용자가 준비될 때까지 특정 커밋이나 브랜치에 연결하지 않는다는 점이 특징입니다.

스태시를 활용하려면 로컬 저장소에서 다음 순서대로 진행합니다.

git stash push
git checkout <전환할-브랜치>
--- <전환할-브랜치>에서 필요한 작업 수행 ---
git checkout <이전-브랜치>
git stash pop

스택(Stack) 자료구조에 익숙하다면 이 흐름이 쉽게 이해될 것입니다. 스택은 후입선출(LIFO) 구조로, 가장 최근에 저장한 스태시가 목록 맨 끝에 추가되고, 필요할 때 꺼내서(pop) 사용하게 됩니다.

참고로 git stash pop은 기본적으로 마지막 스태시 항목을 적용한 뒤 목록에서 완전히 제거합니다. 스태시 기록을 남겨두고 싶다면 git stash apply를 사용하면 됩니다.

마무리

이번 글에서는 체크아웃 시 워킹 트리의 파일이 덮어써진다는 오류를 해결하는 두 가지 방법을 살펴보았습니다. 대부분의 경우 Git 오류 메시지가 안내하는 내용을 그대로 따르면 문제를 해결할 수 있습니다. 이 상황에서는 변경 사항을 커밋하거나 스태시하여 워킹 트리를 정리한 후 브랜치를 전환하면 됩니다. 어떤 방법을 선택할지는 팀의 Git 워크플로우에 따라 달라지므로, 판단이 어렵다면 동료에게 도움을 요청하는 것이 좋습니다. 즐거운 코딩 되세요!