728x90
반응형
Git에서 이미 커밋된 변경사항을 되돌리거나 작업을 초기 상태로 되돌리는 것은 일반적인 작업 중 하나입니다. 주로 사용되는 두 가지 방법은 revert와 reset입니다. 이 글에서는 각각의 명령어 사용법과 차이점을 다루겠습니다.
Git Revert
git revert 명령어는 특정 커밋의 변경사항을 취소하는 새로운 커밋을 생성합니다. 이 방법은 이전 커밋의 내용을 유지하면서 오류나 문제를 해결할 수 있게 해줍니다.
- 사용법: git revert <커밋 해시>
- 결과: 지정된 커밋의 변경사항을 취소하는 새로운 커밋이 생성됩니다.
- 특징: 기존의 커밋 이력이 유지되며, 공개적인 저장소에서 사용하기에 적합합니다.
Git Reset
git reset 명령어는 현재 HEAD를 특정 커밋으로 이동시키며, 선택적으로 스테이징 영역과 작업 디렉토리의 상태를 변경합니다. 이 명령어는 커밋 이력을 재작성할 때 사용됩니다.
- 사용법: git reset <옵션> <커밋 해시>
- 옵션:
- --soft: 커밋은 취소되지만, 스테이징 영역과 작업 디렉토리는 그대로 유지됩니다.
- --mixed (기본값): 커밋과 스테이징 영역이 취소되지만, 작업 디렉토리는 유지됩니다.
- --hard: 커밋, 스테이징 영역, 작업 디렉토리 모두 취소됩니다.
- 특징: 커밋 이력이 변경될 수 있으므로, 주의해서 사용해야 합니다.
반응형
Revert와 Reset의 차이점
- 이력 보존 여부: revert는 커밋 이력을 보존하는 반면, reset은 이력을 변경할 수 있습니다.
- 공개 저장소 사용: revert는 공개 저장소에서 커밋을 안전하게 되돌리는 데 적합하고, reset은 주로 개인 작업에서 사용됩니다.
예제: 커밋 되돌리기
Revert 예제
# 특정 커밋을 되돌리기
git revert abc1234
Reset 예제
# 커밋을 부드럽게 되돌리기
git reset --soft abc1234
# 커밋과 스테이징을 되돌리기
git reset --mixed abc1234
# 모든 것을 되돌리기
git reset --hard abc1234
결론
Git의 revert와 reset 명령어는 커밋을 되돌리는 데 각각 다른 접근 방식을 제공합니다. 각 명령어의 특성을 이해하고 적절한 상황에서 사용하는 것이 중요합니다.
728x90
반응형
'Git' 카테고리의 다른 글
Git 태그: 코드 릴리스와 버전 관리의 핵심 (25) | 2024.02.09 |
---|---|
Git 브랜치 관리: 효과적인 코드 분기 및 통합 (71) | 2024.01.31 |
Git 커밋 로그 조회: 프로젝트 이력 관리의 기본 (67) | 2024.01.30 |
Git 스테이징 영역: 커밋을 위한 준비 단계 (105) | 2024.01.25 |
Git 리모트 저장소: 코드 공유와 협업의 중심 (105) | 2024.01.24 |