본문 바로가기

문과 코린이의, [Git] 기록

[문과 코린이의 IT 기록장] Git 심화 - 취소 및 되돌리기 (관리되지 않는 파일들 삭제하기, 커밋하지 않은 변경사항 되돌리기, reset 이후 복구 방법)

반응형

[문과 코린이의 IT 기록장] Git 심화 - 취소 및 되돌리기 (관리되지 않는 파일들 삭제하기, 커밋하지 않은 변경사항 되돌리기, reset 이후 복구 방법)

[문과 코린이의 IT 기록장] Git 심화 - 취소 및 되돌리기 (관리되지 않는 파일들 삭제하기, 커밋하지 않은 변경사항 되돌리기, reset 이후 복구 방법)

 


 

 

제대로 파는 Git & GitHub - by 얄코 - 인프런 | 강의

코알못도 따라올 수 있는 친절하고 쉬운 강좌! 현업 개발자는 Git 박사로 들어주는 끝판왕 강좌!, - 강의 소개 | 인프런...

www.inflearn.com

2022.04.05 - [문과 코린이의, [Git] 기록] - [문과 코린이의 IT 기록장] Git 심화 (VCS vs Git, Git에서 파일들이 거치는 상태 (Git의 3가지 공간), HEAD, fetch vs pull)

 

[문과 코린이의 IT 기록장] Git 심화 (VCS vs Git, Git에서 파일들이 거치는 상태 (Git의 3가지 공간), HEAD

[문과 코린이의 IT 기록장] Git 심화 (VCS vs Git, Git에서 파일들이 거치는 상태 (Git의 3가지 공간), HEAD, fetch vs pull) 제대로 파는 Git & GitHub - by 얄코 - 인프런 | 강의 코알못도..

vansoft1215.tistory.com

2022.04.06 - [문과 코린이의, [Git] 기록] - [문과 코린이의 IT 기록장] Git 심화 (Help와 문서 활용하기, Git의 각종 설정 (Git config))

 

[문과 코린이의 IT 기록장] Git 심화 (Help와 문서 활용하기, Git의 각종 설정 (Git config))

[문과 코린이의 IT 기록장] Git 심화 (Help와 문서 활용하기, Git의 각종 설정 (Git config)) 제대로 파는 Git & GitHub - by 얄코 - 인프런 | 강의 코알못도 따라올 수 있는 친절하고 쉬운 강좌!..

vansoft1215.tistory.com

2022.04.11 - [문과 코린이의, [Git] 기록] - [문과 코린이의 IT 기록장] Git 심화 - 커밋 관리하기 (커밋하는 방법 (권장사항), 보다 세심하게 스테이징하고 커밋하기, 커밋하기 애매한 변화 치워두기, 커밋 수정하기, 과거의 커밋들을 수정,..

 

[문과 코린이의 IT 기록장] Git 심화 - 커밋 관리하기 (커밋하는 방법 (권장사항), 보다 세심하게 스

[문과 코린이의 IT 기록장] Git 심화 - 커밋 관리하기 (커밋하는 방법 (권장사항), 보다 세심하게 스테이징하고 커밋하기, 커밋하기 애매한 변화 치워두기, 커밋 수정하기, 과거의 

vansoft1215.tistory.com


1. 관리되지 않는 파일들 삭제하기

- Git에서 추적하지 않는 파일들 삭제

$git clean
옵션 설명
-n 삭제될 파일들 보여주기 (git clean 명령어를 사용했을 때 삭제될 파일들을 보여줌)
-i 인터렉티브 모드(어떤 것을 삭제할지를 고르는 모드) 시작
-d 폴더 포함 (삭제할 파일의 폴더 포함 삭제)
-f 강제로 바로 지워버리기
-x .gitignore에 등록된 파일들도 삭제 (기본적으로는 삭제하지 않음)

 

ex 1 )  git clean -n (관리되지 않는 파일 보여주기)

ex 2 ) git clean -nd (관리되지 않는 파일 폴더 포함 보여주기)

ex 3 ) git clean -i (삭제될 내역들 고르는, 인터렉티브 모드 시작)

q를 누르면 나오기

ex 4 ) git clean -di (삭제될 내역들 고르는, 인터렉티브 모드 시작으로, 폴더까지 포함해서 보여줌)

ex 5 ) git clean -df (폴더 포함 관리되지 않는 파일들 강제 삭제)

 


2. 커밋하지 않은 변경사항 되돌리기

$git restore
# 특정 파일을 지정된 상태로 복구한다.
# 기존에 checkout이, restore과 switch로 분리되었다.

- 이를 사용해서, 특정 파일을 Working Directory 혹은 Staging area로부터 되돌려놓을 수 있다.

1) Woirking Directory로부터의 파일 복구 방법

# 해당 파일에 대해 변경사항 복구
$git restore 파일명

# 전체 파일에 대한 변경사항 복구
$git restore .

 

2) Staging area에서 Working Directory로 복구 방법

# 특정 파일 되돌리기
$git restore --staged 파일명

# 전체 되돌리기
$git restore --staged .

 

3) 파일을 특정 커밋의 상태로 되돌리는 방법 

$git restore --source (헤드 또는 커밋 해시) (파일명)

- 커밋이 변하는 것이 아니라, 파일의 내용만 변화하는 것이다. 

- 즉, 내용이 저장된 상태(working directory)로만 만든 것이며, git add + git commit을 통해 커밋을 따로 해줄 필요가 있다.

 


3. reset 이후 복구 방법

1) 커밋 15개 되돌리기 (reset으로 과거로 돌아가기)

$git reset --hard HEAD~15

 

2) 커밋 되돌리기 전 상태로 돌아가기 

$git reflog
# reset으로 사라진 커밋을 복구할 수 있는 명령어
# reflog는 프로젝트가 위치한 커밋이 바뀔 때마다 기록되는 내역을 보여주고, 
# 이를 사용하여 reset하기 이전 시점으로 프로젝트 복구 가능하다.

# 이후 reflog에서 돌아갈 부분의 해시값을 복사해서 아래의 명령어를 입력하면 되돌리기가 가능함.
$git reset --hard 해시값

 * rebase도 마찬가지 방법으로 해결 가능


* 유의사항
- 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다.
- 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다.
- 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :)
반응형