[git & github] git이랑 친해지기 ③ (git restore, git revert, git reset)

2025. 10. 6. 11:13·git & github
반응형

코드를 짜다보면 실수는 분명히 발생할 것이다

하지만 그 실수를 뒤늦게 알아차린다면

과거의 특정시점으로 어떻게 되돌아 갈 수 있는 지 알아볼 것이다

 

git restore

코드를 짜다가 문제가 되는 부분이 생겨서 취소해야하는데

ctrl+z하기에는 양이 너무 많거나 컴퓨터를 껐다 켜서 ctrl+z가 안먹힌다면

git restore 파일명

이러면 그 파일의 가장 최근 commit된 상태로 되돌릴 수 있다

 

만약 파일의 특정 커밋 시점으로 되돌아가고 싶다면

git restore --source 커밋아이디 파일명

이렇게 해주면 된다

 

번외로 특정 파일의 statging 상태를 취소하고 싶다면

git restore --staged 파일명

이렇게 해주면 된다

 

git revert

만약 코드를 짜다가 이전의 특정 commit이 문제가돼서 그 부분만 없애고 싶다면

git revert 커밋아이디

이러면 그 커밋아이디에서 일어난 일을 없애준다

사실 없애준다기보다는 그 commit 내용을 취소해준 commit을 생성하는것이다

 

git revert 커밋아이디1 커밋아이디2

이런식으로 여러개의 commit을 취소시킬 수 있다

 

만약 가장 최근의 commit을 revert하고 싶으면

git revert HEAD

이렇게 해주면 된다

 

git reset

만약 코드가 구제불능상태고 더이상 손을 쓸 수가 없는 상태가 된다면

시간을 과거로 되돌려야할 것이다

git reset --hard 커밋아이디

이러면 커밋아이디 시점으로 작업폴더,코드, 내용 등 모든 것이 되돌아간다

로컬 내용들도 완전소거 된다

 

참고로 git add되지 않은 untracked 파일은 지워지지 않는다

 

reset의 옵션으로 

--soft : 그 commit 시점 이후의 로컬(repository)은 그대로지만 파일의 상태를 staging area로 바꾼다

--mixed : 그 commit 시점 이후의 로컬(repository)은 그대로지만 파일의 상태를 unstaged로 바꾼다

 

강의내용을 바탕으로 공부 후 정리했습니다
오늘은 git에서 되돌리기에 관한 명령어들을 공부했는데
되돌리는 것에도 여러 옵션들이 있고
다양한 방식으로 작용한다는 것에 신기했고
굉장히 체계적으로 이루어져있다고 생각했다
반응형

'git & github' 카테고리의 다른 글

[git & github] git이랑 친해지기 ④ (git flow, Trunk-based 전략)  (0) 2025.10.08
[git & github] github랑 친해지기  (0) 2025.10.07
[git & github] git이랑 친해지기 ② (git branch, git merge)  (0) 2025.10.05
[git & github] git이랑 친해지기 ① (git add, git commit, git diff)  (0) 2025.10.04
'git & github' 카테고리의 다른 글
  • [git & github] git이랑 친해지기 ④ (git flow, Trunk-based 전략)
  • [git & github] github랑 친해지기
  • [git & github] git이랑 친해지기 ② (git branch, git merge)
  • [git & github] git이랑 친해지기 ① (git add, git commit, git diff)
20puddle
20puddle
20puddle 님의 블로그 입니다.
  • 20puddle
    20puddle 님의 블로그
    20puddle
  • 전체
    오늘
    어제
    • 분류 전체보기 (100)
      • Spring boot (5)
      • git & github (5)
      • algorithm (47)
        • theory (3)
        • 배열 (7)
        • 연결 리스트 (3)
        • 스택 (5)
        • 큐 (3)
        • 덱 (2)
        • 기초 코드 (19)
        • BFS (5)
      • AI (43)
        • Machine Learning (35)
        • Deep Learning (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ML
    Java
    홀드아웃 검증
    인공지능
    게시판
    AI
    Aimers
    머신러닝
    DL
    오프라인 학습
    github
    그레디언트 클리핑
    딥러닝
    Spring Boot
    연결리스트
    백준
    list
    알고리즘
    git
    주성분변환
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
20puddle
[git & github] git이랑 친해지기 ③ (git restore, git revert, git reset)
상단으로

티스토리툴바