git을 사용하다가 git status를 확인해보니 untracked 파일이 계속해서 나타났습니다. git reset을 사용해도 계속 남아 있는 경우 과연
어떻게 하면 원래 상태로 되돌릴 수 있는지 알아봅니다.
# Git untracked 파일 모두 되돌리기
프로젝트 경로에서 파을 계속 변경하면 untracked 파일이 생겨나게 됩니다. 이를 staged로 옮길 수도 있겠지만 그렇지 않을 경우 reset등을 사용해서 비울 수 있겠습니다. 즉 대부분의 untracked 파일 삭제는 아래의 명령어로 해결이 됩니다.
git reset --hard
하지만 위 명령어를 수행해도
일부 untracked 파일이 남아있는 경우가 있을 수 있죠. 이 경우 몇 가지 방법이 존재합니다. 그 중에서 대표적인 방법이
git clean입니다.
git cleangit clean이 어떤 일을 하는지 알아보면 아래와 같이 알려줍니다.
Remove untracked files from the working tree
즉
untracked 파일을 현재 프로젝트 내의 트리 구조에서 삭제한다는 것을 알 수 있습니다. 그럼 어떻게 하면 되는지 자세히 알아보죠.
! git clean 명령어 사용하기
이제 git clean 명령어를 사용해서 untracked 파일을 모두 되돌릴 수 있습니다. git clean을 사용할 때 -f를 사용하면 untracked 상태의 파일을 모두 원래대로 되돌릴 수 있습니다.
git clean -f
git clean --force
참고로 d 옵션은 디렉토리를 의미합니다. 하위를 포함한 디렉토리까지 포함하기 위해서는 d를 추가합니다.
git clean -fd
이 방법이 가장 많이 사용되는 방법으로 git clean을 사용하는 방법에 대하여 알아봤습니다.
! git stash 명령어 사용하기
이번에는 git의 stash 명령어를 사용하는 방법입니다. git stash는 자신의 로컬에 임시로 저장할 때 사용하는 방법으로 나중에 사용하는 등의 목적으로 사용되죠. untracked 파일을 stash를 사용하여 옮기는 방법이 되겠습니다.
git stash save --keep-index --include-untracked
이제 untracked 파일이 사용할 필요가 없거나 제외할 경우 drop 명령어를 사용할 수 있습니다. 우리는 stash를 사용해 옮긴 파일들이 더 이상 필요 없으므로 삭제하면 되겠죠. 비우기 위해서 아래 명령어를 사용합니다.
git stash drop
이제 untracked files가 모두 제거된 것을 확인할 수 있습니다. 참고로 stash는 untracked를 파일을 제외하기 위한 목적으로 만들어진 것은 아닙니다. 하지만 이런 방법도 가능하다는 것을 알아두면 좋을 것 같습니다.
여기까지 untracked 파일을 제거, 삭제하는 방법 git clean과 git statsh를 알아봤습니다.