[Git] Reset & Revert (과거로 돌아가기)

im_taeho·2023년 1월 2일
0
post-thumbnail

Git에서 과거로 돌아가는 방식은 2가지가 있습니다.

  • reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 삭제
  • revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행

🚩 커밋 해시 확인하기

  • $ git log 명령어를 실행하면 각 커밋에 대한 해시값을 확인할 수 있다.


🚩 Reset

💡 reset 사용해서 과거로 돌아가기

$ git reset --hard <커밋 해시>

💡 커밋하지 않은 변경사항들을 취소하기

$ git reset --hard

💡 reset의 3가지 옵션

  • --soft : Repository에서 Staging Area로 이동
  • --mixed(default) : Repository에서 Working Directory로 이동
  • --hard : 수정사항들을 완전히 삭제

🚩 Revert

💡 revert 사용해서 과거의 커밋 되돌리기

$ git revert <커밋 해시>

:wq로 커밋 메시지 저장하기

💡 revert 중 커밋이 충돌하는 경우

  • 문제상황 : 사용자는 두 번째 버전의 커밋으로 되돌리기(revert)하려고 한다.
    이전의 커밋에서 leopards.yaml을 생성하였기 때문에 이 커밋을 되돌리기(revert)하면 leopards.yaml을 삭제하는 커밋이 생성된다.
    그러나 최근 커밋에서 leopards.yaml을 수정한 내역이 있기때문에 leopards.yaml을 삭제하는 커밋을 생성하지 못한다.
  • 해결방안
    - $ git rm leopards.yaml로 Git에서 해당 파일을 삭제한다.
    - $ git revert --continue로 중단된 작업을 이어서 한다.
    - :wq로 커밋 메시지를 저장한다.

💡 커밋하지 않고 revert 하기

$ git revert --no-commit <커밋 해시>
  • 활용
    - 원하는 다른 작업을 추가 후 함께 커밋
profile
반갑습니다 :)

0개의 댓글