
이전 커밋으로 되돌아갈 수 있다!!
이 중요한 사실을 이제야 알았다..
문제 생겨서 되돌아가고 싶을 때 사용하면 된다.
이래서 깃허브 커밋을 자주해야 되나보다.
git reset
➡️ 이 명령어만 입력하면 아무 변화도 발생하지 않는다. 단지 명령어만 실행될 뿐이다.
그렇다면 단독으로 쓰이는 상황은 없나?🤔
❇️ 스테이징된 파일을 해제할 때 유용하다!
실수로 너무 많은 파일을 git add로 스테이징했을 때,
git reset 명령어를 통해 스테이징된 파일들을 한 번에 해제할 수 있다!git add . # 실수로 많은 파일을 스테이징함 git reset # 스테이징 영역을 초기화, 파일 변경 사항은 유지됨
그럼에도 git reset이 무의미 할 때가 있다.
만약 이미 모든 스테이징 영역이 비어 있고, 작업 디렉토리에도 변경 사항이 없다면 아무 영향을 미치지 않는다.
상황에 따라서 유용할 수도, 무의미 할 수도 있다!
git reset --hard
git reflog
직접 사용한 코드를 보며 다시 정리해보면

git reset : 아무런 인자 없이 실행되었기 때문에 특별한 동작이 일어나지 않았다.
오타난 건 넘어가고
git reset --hard : 현재 브랜치의 HEAD를 마지막 커밋으로 강제로 되돌려 작업 중이던 변경 사항은 모두 사라지며, 워킹 디렉토리와 인덱스가 마지막 커밋 상태로 되돌아간다.
git reflog : 최근 HEAD가 변경된 기록을 확인한다. HEAD의 이동 기록을 보여주며, reset 명령으로 인해 HEAD가 몇 번 이동했는지 알 수 있다.
여기서 HEAD가 여러 번 동일한 커밋 b7ee34c으로 리셋된 것을 확인할 수 있다.
git reset --hard 550c034 : 이전 커밋(550c034)으로 강제로 되돌렸다. 이 커밋은 reflog에서 5번째 항목으로, develop 브랜치의 상태로 돌아가는 작업이다.
이제 HEAD는 550c034 커밋으로 이동했다.
❇️ 요약
git reflog를 통해 HEAD의 이동 기록을 확인하고, 다시 이전 커밋(550c034)으로 되돌렸다!