Home Git의 restore, revert, reset의 차이점
Post
Cancel

Git의 restore, revert, reset의 차이점

restore, revert, reset의 차이점

여러번 반복해도 이 3개가 너무 헷갈린다.

  • restore : 수정사항을 되돌린다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    //👇 HEAD가 참조하는 파일명에 해당하는 파일의 내용으로 되돌린다. 워킹트리에 존재하는 수정사항을 로컬 저장소의 내용으로 되돌린다.
    git checkout HEAD [파일명]
    git restore [파일명]
    
    //👇 HEAD의 특정 커밋 또는 1단계 전 커밋의 내용으로 HEAD가 이동한다.
    git checkout [커밋ID]
    git checkout HEAD~1
    
    //👇 해당 커밋의 파일 내용으로 복구한다. HEAD가 이동하는 것이 아니라 파일 내용만 복원한다.
    git restore --source [HEAD~1 또는 커밋ID] [파일명]
    
    //👇 스테이징된 파일을 되돌린다. (git add 취소)
    git restore --staged [파일명]
    
  • reset : 커밋만 삭제한다. 현재 워킹트리에서 작업하는 내용은 그대로 유지된다.

    1
    2
    3
    4
    5
    
    //👇 커밋ID 이후의 커밋 기록은 모두 삭제된다.
    git reset [커밋ID]
    
    //👇 커밋ID에 해당하는 내용으로 모두 되돌아간다. 커밋ID 이후의 커밋 기록은 물론 수정사항이 모두 삭제된다.
    git reset --hard [커밋ID]
    
  • revert : 커밋을 엎어쓴다. 커밋 자체를 삭제하지 않고 새로운 커밋으로 이전 커밋을 복원시킨다.

    1
    
      git revert [커밋ID]
    

🐝 참고

Git & Github 실무 활용 완벽 가이드

This post is licensed under CC BY 4.0 by the author.

📸 2022-07-12

📸 2022-07-13