git reset, revert

sangwoo noh·2022년 11월 6일
0

git

목록 보기
5/13

둘다 git의 시점을 과거로 돌린다는 점은 같지만,

git reset은 과거로 돌린 시점 이후의 내역을 싹다 지워버리는 효과가 있다.

ex)

git reset --hard 90a7ef33cda1426971ccd5ede72fe029205ba21e

현재 변경된 상황을 전부 되돌리고 마지막 커밋으로 돌아가고 싶을때

git reset --hard

git revert는 특정 커밋의 작업 내용만 되돌린 후 해당 상태를 여태까지 쌓여진 내역 이후에 새롭게 쌓아 주는 효과가 있다.

ex)

git revert 90a7ef33cda1426971ccd5ede72fe029205ba21e

git revert conflict

  • git revert를 여러번 수행하다보면 해당 특정 커밋의 작업내용만 되돌리다보니 이전의 revert했던 내역과 충돌이 나는 경우가 있다.
    예컨데 이전 revert에서 수정했던 파일을 이번에 수행할 revert에서는 삭제를 해야하는 내용이라던지...
    이런경우 명확하지가 않기때문에 수동으로 git rm을 쳐주고 git revert --continue를 진행한다.
    어쨌든 revert conflict가 나는 이유를 hint로 잘 제공해주니 잘보고 선택하여 작업을 진행하면 된다.

git revert --no-commit (되돌릴 커밋 해시)

  • revert이 후 어떤 작업을 추가적으로 한다음에 새롭게 commit을 하고 싶을때 사용

해쉬 값 확인법

ex)

git log를 쳐서 나오는 해시값으로 돌아간다.

git 강제로 덮어씌우기 --force

ex)

git reset --hard 90a7ef33cda1426971ccd5ede72fe029205ba21e
이후 

git push --force
를 치면 현재 로컬 커밋내용을 기준으로 원격을 덮어씌운다.
profile
하기로 했으면 하자

0개의 댓글