본문 바로가기

카테고리 없음

git reset과 revert관련된 것들(git기록10)

> git reset "commit 해쉬번호"

==> 파일들을 작업하고 commit 히스토리를 기록했는데, 잘못 기록해서 전 commit으로 가야 한다면 위와 같이 git reset 7자리 commit해쉬번호로 갈 수 있다. 그런데 git checkout commit해쉬번호와 다르게 전 단계에서 후에 작업한 commit들을 다 날라간다. 

==> commit은 전단계로 가나, 파일 내용은 기존에 있던 내용이니 체크아웃과 다른 점이 있다.

==> 패턴: git reset "commit해쉬번호"로 간 이후에 git switch -c 브랜치명을 만들어서 아니면 git branch 브랜치명 한 이후에 git switch 브랜치명으로 만들어서 add 와 commit작업을 한다. 그리고 마스터 브랜치로 가면 commit전단계인 내용이 그대로 있다. 

 

> git reset --hard "commit 해쉬번호"나 "HEAD~전단계 번호"

==> 위의 git reset "commit해쉬번호"랑 동일하나 파일 내용과 기존에 있던 내용도 전단계 기록으로 간다.

==> 기존 commit기록 사라지는 것은 동일하다.

 

**git reset은 기존 commit이 날라가는 동작이기 때문에 몇개의 과거로 돌릴때나 과거로 돌아가는 경우에 조심해서 입력하는게 좋다.  

 

> git revert "commit 해쉬번호"나 "HEAD~전단계 번호"

==> 새로운 commit이 형성 되는데 과거에 있는 commit단계로 간다. 

==> 대신에 실수로 파일 삭제를 해서 다시 되돌릴 경우에는 revert가 되지 않는 경험이 있어서 참고로 알면 좋다.