[GIT] Gir Reset | Git Revert (버전 되돌리기)

MJ·2022년 8월 8일
0

GIT

목록 보기
13/33
post-thumbnail
post-custom-banner

버전 롤백

GIT으로 로컬저장소에 커밋된 파일들은 다른 작업을 진행 중이더라도 언제든지 이전에
기록한 파일의 버전으로 돌아갈 수 있습니다.

작업중인 파일에 문제가 생겼거나 버전을 롤백해야 하는 상황이 왔을 때 이전 버전으로
돌아가는 방법을 알아보겠습니다.

버전을 이동할 수 있는 checkout 명령어와는 조금 다릅니다.


💡 Git Reset

  • commit 버전을 이동시키는 명령어
  • 이전 버전으로 이동할 떄, 이전 버전 이후에 작업한 모든 commit은 삭제 됩니다.
  • 주로 branch를 혼자 사용하거나 로컬저장소에서 사용 된다. ( 협업시 사용 비추 )

git reset [이동할 커밋 ID]
# 커밋 ID는 자신이 이동할 커밋 버전의 ID를 적으면 됩니다. 

git reset --soft [커밋 ID]
# 해당 커밋으로 이동할 때, 작업중인 워크 디렉터리와 스테이지 영역은 영향을 받지 않음

git reset --mixed [커밋 ID] 
# 해당 커밋으로 이동할 때, 워크 디렉터리는 영향을 받지 않고 스테이지 영역은 되돌아갈 커밋과 동일해진다.
# reset 명령어의 기본 값이다.

git reset --hard [커밋 ID]
# 해당 커밋으로 이동할 때, 워크 디렉터리와 스테이지 영역 모두 되돌아갈 커밋과 동일해진다.

💡 Git Revert

  • 과거에 특정한 commit 버전을 없었던 일로 만드는 행위
  • 새로운 버전에 이전 버전에서 수정된 내용만 가져 옵니다.
  • 버전을 이동할 때, 이동한 버전 이후에 생긴 commit 파일에 영향을 주지 않습니다.
    이 부분이 reset과 다른 점
  • 이전 버전으로 돌아갈 때 역순으로 차근차근 revert 해야 충돌이 나지 않습니다.

git revert [되돌릴 해시코드]
# 되돌릴 파일 버전의 해시코드를 입력합니다 



reset 사용 하기

1. reset 명령어를 사용해서 이전의 커밋 버전으로 이동 하기

--hard 명령어는 커밋을 이동할 때, 현재 버전에 있는 working directorystaging area
영역도 이동할 커밋에 영역으로 변경합니다.


revert 사용 하기

1. 명령어를 사용하기 이전에 커밋의 개수를 확인하고 적다면 늘려줍니다.
저같은 경우에는 커밋이 2개만 있기 때문에 예제를 위해 2개를 더 추가하겠습니다.


2. 현재 커밋에서 R3 modified 메세지가 있는 커밋으로 revert이동을 했을 때 변화를
확인 해보겠습니다.

reset과 다른점은, 커밋 ID를 적을 때, 이동할 커밋 ID가 아니라, 자신의 버전을
되돌릴 커밋 ID를 적어야 합니다.


3. 현재 revert한 버전의 파일들이 059e44 커밋 버전으로 되돌아갔는지 확인


⭐ revert 사용 하기

revert를 사용할 때, 가장 중요한 것은 현재 버전을 이전 버전으로 되돌리기 때문에 현재
위치에서 바로 전 버전이 아니라, 한참 이전의 버전으로 바로 돌아가게 되면 충돌이 나요.
항상 사용할 때 역순으로 사용해야 합니다.

1. revert를 사용해서 현재 버전에서 이전 버전이 아닌, 2단계 이전 버전으로 되돌리기


2. revert를 사용해서 현재 버전에서 이전 버전이 아닌, 2단계 이전 버전으로 되돌리기


번외. 역순으로 되돌리지 않고, 한 번에 e724be 버전으로 revert 하면 오류가 발생합니다.
실무에서 conflict오류가 생기면 처리하기 매우 어렵다고 합니다. 꼭 역순으로 사용 합시다.

아래 같은 오류를 해결하려면, status 상태를 확인하고 add 해준 후 커밋을 하면 됩니다.

profile
프론트엔드 개발자가 되기 위한 학습 과정을 정리하는 블로그
post-custom-banner

0개의 댓글