[Git] 3. reset

김주희's avatar
Mar 26, 2025
[Git] 3. reset

1. Git Graph

1. Cursor (VSCODE) Plugin 설치

notion image

2. Git Graph 보기

  1. git graph를 통해 시각적으로 형상 확인 가능하다.
    1. ctrl+shift+a
notion image
notion image
 

2. Git Reset

1. git reset이란?

  1. git reset은 커밋 복구를 위한 명령어이다.
  1. reset은 branch pointer를 이동시키는 것으로, 실제 폴더를 삭제하는 것이 아니라 폴더는 그대로 두고 눈이 보는 위치만 달라진다.
  1. 새로운 파일을 만들고 git add만 하고 commit 하지 않으면 reset을 하더라도 그 파일은 그대로 유지되어있다 → commit을 하지 않으면 관리가 되지 않기 때문이다.
  1. 따라서 commit을 해야 복구 가능하다.
    1. 로그인 파일은 git add만 되고 git commit 되지 않았기 때문에 회원가입으로 돌아가더라도 그대로 유지된다.
      로그인 파일은 git add만 되고 git commit 되지 않았기 때문에 회원가입으로 돌아가더라도 그대로 유지된다.

2. git reset을 사용해보자

  1. 돌아가고자 하는 커밋 해시를 먼저 확인한다.
    1. 현재 branch pointer는 로그인을 가리킨다.
    2. 로그인 이전의 회원가입으로 돌아가고 싶은 상황이므로 커밋 해시 중 4자리(7612) 정도를 기억해둔다.
    3. git log
      notion image
  1. git reset 명령어를 통해 회원가입 상태로 돌아갈 수 있다.
git reset --hard 7612(해시)

3. reset으로 사라진 commit으로 돌아가보자

  1. git reflog는 백업로그 즉, reset한 뒤에 사라진 commit까지 확인할 수 있는 명령어이다.
git reflog
  1. reflog 명령어를 통해 삭제된 커밋의 해시를 가지고 다시 reset 한다.
    1. 현재 로그인이 삭제된 상태이고 branch pointer가 회원가입을 가리키고 있다.
    2. 로그인 커밋 해시는 c346이다.
notion image
git reset --hard C346
 

4. 같은 위치의 형상이 다르면 reject!

예) github에는 환경세팅/회원가입/로그인이고 local에서도 환경세팅/회원가입/로그인이지만 로그인 파일의 내용이 다르다. 즉 로그인에 대한 커밋 해시가 다른 상태이다. 따라서 이 경우 local에서 push하게 되면 충돌나서 git에서 거절한다
 
notion image
notion image
  1. 강제 push (—force) : local이 정상일경우
git push -f origin master
  1. 강제 pull : 원격저장소가 정상일경우
git pull -f origin master
  1. 내가 내려받아서 형상을 맞추고 다시 push
 
Share article

jay0628