삶 가운데 남긴 기록 AACII.TISTORY.COM

git 수정된 변경 내용 폐기 본문

DEV&OPS/Linux & Cloud

git 수정된 변경 내용 폐기

ALEPH.GEM 2026. 7. 16. 17:38
728x90

 

수정된 모든 파일의 변경 내용을 폐기

commit 하거나 git add 하지 않은 파일의 수정사항을 마지막 커밋 상태로 되돌립니다.

git restore .

이 명령어는 현재 디렉토리(.) 기준 모든 수정된 파일의 변경내용을 폐기합니다.

git 2.23 버전부터 권장합니다.

그 아래의 버전에는 checkout 명령어를 사용해도 동일하게 동작합니다.

git checkout .

 

 

Staged된 파일 포함 모든 변경 내용 폐기

git add를 통해서 스테이징 area에 올린 사항까지 모든 로컬 변경 사항을 폐기하고 싶다면 reset 명령을 사용합니다.

이 명령어는 복구가 어려우니 주의하십시오.

git reset --hard

마지막 커밋(HEAD) 상태로 작업 폴더 전체를 강제로 되돌아 갑니다.

 

 

새로 추가된 파일(Untracked) 삭제

git이 추적하고 있지 않은 새로 생성한 파일을 삭제 하려면 clean 명령어를 사용합니다.

이 명령어 역시 복구가 불가능합니다.

git clean -n -d

 

  • -n: 실제 삭제는 하지 않고 대상 목록만 보여줍니다.
  • -d: 디렉토리도 포함합니다.

실제 삭제할 때는 -f  옵션을 사용합니다.

git clean -f -d

 

 

 

특정 파일 하나만 마지막 커밋 상태로 되돌림

restore 명령어로 경로와 파일이름을 지정해주면 됩니다.

git restore 파일_경로/파일_이름

 

예를 들어 src/main.js 파일을 폐기하고 싶다면:

git restore src/main.js

 

git 2.23 이전 버전이라면 역시 checkout 명령어를 이용합니다.

git checkout -- src/main.js

- 기호는 브랜치 이름과 혼동을 피하기 위해 두번 입력해줍니다.

 

git restore 명령을 사용할 때 파일 경로는 현재 내가 터미널(명령 프롬프트)에서 위치한 디렉토리를 기준으로 계산됩니다.

예를 들어, 다음과 같은 프로젝트 구조가 있다고 가정해 보겠습니다.

my-project/
├── .git/
├── README.md
└── src/
    └── main.js

내가 현재 my-project/ 디렉토리에 있고 src/main.js 파일의 변경 사항을 폐기하고 싶다면:

# 현재 위치: /Users/Me/my-project/
# 대상 파일: /Users/Me/my-project/src/main.js
# 현재 위치에서 대상 파일까지의 상대 경로를 적습니다.
git restore src/main.js

내가 src/ 디렉토리로 이동한 상태에서 main.js 파일의 변경 사항을 폐기하고 싶다면:

# 현재 위치: /Users/Me/my-project/src/
# 대상 파일: /Users/Me/my-project/src/main.js
# 현재 위치에 파일이 바로 있으므로 파일 이름만 적습니다.
git restore main.js

만약 src/ 디렉토리에서 상위의 README.md 파일 변경 사항을 폐기하고 싶다면:

# 현재 위치: /Users/Me/my-project/src/
# 대상 파일: /Users/Me/my-project/README.md
# 상위 디렉토리로 나가야 하므로 '..'을 사용합니다.
git restore ../README.md

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'DEV&OPS > Linux & Cloud' 카테고리의 다른 글

git 기본 사용 방법  (0) 2026.07.16
git branch 관리: tracking, cherry-pick, stash  (1) 2026.07.16
git flow 브랜치 관리 전략  (0) 2026.07.14
WSL 2 네트워크  (2) 2025.11.03
WSL 우분투 배포판에서 Node.js 설치  (0) 2025.10.26