learn-git-3(reset, revert)

GI JUNG·2022년 12월 3일
3

git

목록 보기
3/3
post-thumbnail

작업을 하다가 코드가 엉키거나 예전 스냅샷에 원하는 파일과 코드를 추가하고 싶을 때가 있을 것이다. 이럴 때 사용하는 것이 reset이고 온라인 저장소(ex, github)를 통해 다른 누군가와 코드를 공유하고 있는 상태라면 revert를 사용해야한다.

🍀 reset

reset을 이용하여 commit을 취소하거나 새로운 파일 또는 코드를 삭제 및 추가를 할 수 있다. 하지만, 위에서 언급했듯이 reset은 혼자 작업하는 환경에서 local의 commit들을 다루는 명령어이다.

reset을 알아보기 이전에 무작정 reset을 공부한다고 뛰어들었다가 이해가 안 가는 부분이 많았는데 아래 사전지식을 익히고나서 이해가 수월해졌다. 따라서 나중에 봤을 때 금방 이해가 가도록 사전지식을 잡고 가고자 한다.

📚 사전지식

reset이 하는 일은 HEAD(commit을 가리키는 pointer)를 다른 commit을 가리키는 역할을 한다. 이쯤에서 난 아래와 같은 의문점을 가지게 되었다. 👇

🤔 WHY? checkout도 다른 commit을 가리키지 않나???? 어떤 차이점이 있는거지???

여기저기서 서칭을 하던 중 여기(git-scm)에서 의문점을 해결할 수 있었다.

checkout: HEAD가 가리키는 branch를 바꾼다. 즉, branch이동이 이루어진다
reset: 현재 branch내에서 HEAD가 가리키는 commit이 다르다. 즉, branch이동이 없이 가리키는 commit만 달라진다.

내가 이해하지 못 했던 것은 많지만 Git은 기본적으로 HEAD, INDEX, Working Directory3개의 Tree를 관리하는 system을 알면 뒷 내용은 수월하게 이해가 가기 시작한다.

INDEX

Working Directory

Workflow

$ git rebase -i HEAD~3
git 복구 -> $ git reflog

🍀 revert

🍀 참고

what does --(dash dash) mean in git
git-scm reset ko
ammend commit

profile
step by step

0개의 댓글