사용 목적 :
프로젝트를 진행하는 중에 예기치 못한 변수 발생 시, 이력관리를 통해서 이력 되돌리기를 할 수 있음 |
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 |