본문 바로가기
Git 관련&코드 정리

Git 에러 “error: Cannot delete branch ~ checked out at ~”

by winteringg 2022. 8. 16.

문제 상황

 깃 브랜치를 잘못 생성해서 삭제하려고 했다.

git branch -d (브랜치명)

 그런데 바로 이 오류가 떴다. 

error: Cannot delete branch '브랜치명' checked out at ......

 찾아보니 내가 현재 삭제하고자 하는 브랜치에 있는 상태에서 이 브랜치를 삭제하려고 하기 때문이었다.

해결 방법

해결 방법은 간단했다! 브랜치를 다른 곳으로 전환한 후에 다시 삭제 명령어를 날려주면 된다.  근데 구글링을 해보니 브랜치를 전환하는 명령어에는 checkout 말고도 switch 도 있었는데 둘의 차이점이 뭘까?

 기존에는 checkout 명령어만 있었는데 Git.2.23 에서 checkout 을 대신 할 switch, restore 가 도입되었다고 한다. checkout 이 다른 명령어로 분리된 이유는 하나의 명령어가 가진 기능이 너무 많기 때문이다. 아래는 문서에 나온 정의이다.

  • checkout: Switch branches or restore working tree files (브랜치를 전환하거나 워킹트리 파일을 복원)
  • switch: Switch branches (브랜치를 전환)
  • restore: Restore working tree files (워킹트리 파일을 복원)

 git --help 에도 이제 checkout 명령어는 나오지 않는다고 하니 도입된 명령어를 쓰는 것이 바람직 할 듯 하다.

git switch (다른 브랜치명)   //권장함
git checkout (다른 브랜치명) //권장안함

--------------------------------

git branch -d (삭제하려는 브랜치명)

 

댓글