Git revert --no-commit: 여러 커밋을 자동 커밋 없이 되돌리는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Git 초보자, 중급자, 고급 개발자
- 난이도: 중급 이상 (커밋 히스토리 관리 및 툴 사용 경험 필요)
핵심 요약
git revert --no-commit
은 다중 커밋을 되돌리되 자동 커밋 없이 변경 사항을 적용하여 수정 후 수동 커밋 가능- 커밋 범위 지정(
oldest-commit^..newest-commit
)으로 범위 내 모든 커밋을 단일 커밋으로 되돌리기 가능 - 부분적 되돌리기 시
--no-commit
사용 후 파일 수정 후 수동 커밋으로 원하는 변경만 유지 가능 git revert --no-commit
은 공유 저장소에서 안전한 히스토리 수정을 위해 설계됨
섹션별 세부 요약
1. `git revert` 기본 개념
git revert
는 이전 커밋의 변경 사항을 새로운 커밋으로 되돌림git reset
과 달리 히스토리 삭제 없이 작업 가능 (공유 저장소 사용 시 안전)- 예시:
```bash
git revert
```
2. `--no-commit` 플래그 사용 목적
- 다중 커밋 되돌리기 시 수동 커밋으로 통합 가능
- 변경 사항 검토 후 커밋 결정 가능
- 예시:
```bash
git revert --no-commit C
git revert --no-commit B
git commit -m "Reverted B and C together"
```
3. 커밋 범위 지정으로 단일 커밋 되돌리기
oldest-commit^..newest-commit
형식으로 범위 지정- 예시:
```bash
git revert --no-commit B^..D
git commit -m "Reverted commits B, C, and D together"
```
4. 부분적 되돌리기(Keep Some Changes)
--no-commit
으로 되돌린 후 수정된 파일 수동 추가- 예시:
```bash
git revert --no-commit C
git add .
git commit -m "Partial revert of C (kept critical fixes)"
```
5. 되돌리기 + 즉시 수정 통합
--no-commit
사용 후 수정 내용 추가 후 단일 커밋- 예시:
```bash
git revert --no-commit B
echo "Hotfix for edge case" >> file.txt
git add .
git commit -m "Reverted B + added critical hotfix"
```
결론
git revert --no-commit
을 사용하여 다중 커밋을 단일 커밋으로 되돌리거나, 수정 사항을 통합하여 깔끔한 히스토리 관리 가능- 커밋 범위 지정(
oldest-commit^..newest-commit
)과 수동 커밋은 히스토리 관리의 유연성을 높임 - 공유 저장소에서는 히스토리 삭제 없이 안전한 되돌리기를 위해
git revert
사용 권장