..
git 삭제된 파일 복구
문제상황
실수로 Github 레포지터리 안에 포함된 한 디렉토리를 삭제해버린 상황입니다.
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: docs/meme-library/README.md
deleted: docs/meme-library/asset/2001-sysadmin-and-2020-devops.jpg
deleted: docs/meme-library/asset/box-of-devops.jpg
deleted: docs/meme-library/asset/bring-solutions-istio.png
deleted: docs/meme-library/asset/cncf-landscape-meme.jpeg
deleted: docs/meme-library/asset/devops-nowadays.jpeg
deleted: docs/meme-library/asset/it-came-with-a-message.jpeg
deleted: docs/meme-library/asset/its-the-hard-way-folks.png
deleted: docs/meme-library/asset/k8s-api.jpg
deleted: docs/meme-library/asset/simpsons-against-devops.png
deleted: docs/meme-library/asset/woman-yelling-at-a-k8s-cat.jpeg
deleted: docs/meme-library/asset/yeah-automate.jpeg
또는 아래 방법으로도 삭제된 파일 리스트를 확인할 수 있습니다.
$ git ls-files -d
환경
- git : git version 2.32.1 (Apple Git-133)
- shell : zsh + oh-my-zsh
해결방법
여러 파일 복구
Github 레포지터리 안에서 삭제된 전체 파일을 복구합니다.
$ git ls-files -d | xargs git checkout --
명령어 실행 결과는 다음과 같습니다.
Updated 12 paths from the index
모든 deleted 파일이 복구되었습니다.
$ git status
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
단일 파일 복구
하나의 특정 파일만 복구합니다.
$ git checkout <file-name-to-restore>