VERSION/GIT

[GIT] 롤백 / reset, revert 차이점, 명령어

보겸삼촌 2020. 2. 11. 13:47

사용 목적 :

프로젝트를 진행하는 중에 예기치 못한 변수 발생 시, 이력관리를 통해서 이력 되돌리기를 할 수 있음

 

1. reset, revert 차이점

명령어 설명
reset

이력을 그 당시로 되돌리는 것, 돌아가려는 commit으로 repository가 재설정 됨

(해당 커밋 이후의 이력이 사라짐)

revert 이전 이력은 그대로 두고, 되돌릴 commit의 코드만 원복

 

2. reset 명령어

 

  2.1. 옵션

명령어 - 옵션 설명
git reset --soft 원복된 이력 이후의 내용을 모두 유지
git reset --hard 원복된 이력 이후의 내용을 모두 삭제 후 초기화
git reset -merge 바로 이전 병합 취소
git reset --mixed 원복된 이력 이후의 내용을 모두 유지하지만 인덱스는 초기화 되므로 변경 내용을 다시 추가해야 함

 

  2.2. 명령어 예시

명령어 - 예시 설명
git reset --hard <commit SHA> commit SHA로 원복 후 초기화
git reset HEAD^ 현재부터 commit 1개 이전으로 복원
git reset HEAD~6 현재부터 commit 6개 이전으로 복원

 

  2.3. 시행 예시

    2.3.1. reset 명령 (commit 시점 update)

git reset --hard 67a010b

 

 

    2.3.2. dev 브랜치에 강제로 push(변경 이력 저장, 이후 커밋 삭제)

git push -f origin dev

    2.3.3. 확인

 

 

 

3. revert 명령어

명령어 - 예시 설명
git revert <commit SHA> commit SHA로 원복, 파일 내용도 그대로 유지, 되돌린 버전 이후의 모든 commit 이력 보존
git revert --mainline <commit SHA> 과거 병합을 취소, commit SHA로 명시된 브랜치로 되돌아감

 

'VERSION > GIT' 카테고리의 다른 글

[GIT] git config 설정 / 변경 등  (1) 2020.03.02
[GIT] git reflog / HEAD 변경 이력 확인  (0) 2020.02.11
[GIT] branch 명령어  (0) 2020.02.11
[GIT] .gitignore 사용법  (0) 2020.02.11
[GIT] SourceTree - Github Remote Clone  (0) 2019.08.21