배경

 어제 학습한 add, commit은 변경사항이 생겼을 때 버전정보를 업데이트 하는 것이라면, 이전 버전으로 돌아가는 방법에 대해 학습해 보려고 한다.

 

1. 이전 버전으로 복구


① Git 구조

 Git버전은 작업 트리에서 변경된 내용이 있으면 스테이지에 add를 하고 변경된 정보를 저장소에 저장(Commit)을 하게 된다. 반대로 커밋된 내용으로 부터 과거로 돌아갈 때는 git reset, 커밋되기 전 스테이지에서 작업트리로 돌아갈 때 git restore --staged <file>, 작업트리에서 수정한 이후 파일이 정상적으로 돌아가지 않을 때 git restore <file>를 사용하는 것에 대해 자세하게 알아보려고 한다. 

 

② git reset

 생성된 버전에 대해서 다시 과거 버전으로 돌아갈 때 사용하는 명령어이다. 변경하는 방법은 다음과 같다. 

// 돌아가고 싶은 git 해시 확인 //
git log

// 돌아가려는 버전으로 변경 (해당 해시 이후 변경된 내용은 삭제) //
git reset --hard 돌아가려는 커밋해시


// 만약 돌아가려는 버전이 바로 전 버전일 경우 //
git reset --soft HEAD^

 

③ git restore --staged <file>

스테이징 된 파일을 취소할 때 다음과 같은 명령어를 사용한다. 

/* git 상태 확인 - 상태가 changes to be committed 일 때 */
git status

/* 스태이지에서 해당 파일을 내리는 방법 */
git restore --staged <filename>

/* git 상태 확인 */
git status

 

 

④ git restore <file>

파일을 수정한 뒤 소스가 정상적으로 동작을 안하는 등의 이유로 수정한 내용을 취소하려면 다음과 같은 명령어를 사용한다.

/* 수정된 파일 확인 */
git status
----------------------------------------------------------------------
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt
----------------------------------------------------------------------

/* 수정된 파일을 원래대로 복구 */ 
git restore <file>

/* 상태확인 - modified 사라짐 */
git status

 

 

 

*Reference

- "깃&깃허브 입문" - 이지스퍼블리싱

-

-

 

부족한 글이지만 읽어주셔서 감사합니다. 

 

+ Recent posts