Git을 활용한 기능 되돌리기: CPQ 개발자 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
CPQ(Configure, Price, Quote) 개발자 및 Git 사용자
- 난이도: 중간 (Git 커밋 히스토리 이해 및 명령어 실행 필요)
- 관련 분야: Git 작업 흐름, DevOps, 버전 관리
핵심 요약
- 되돌리기 작업은 "되돌리기 커밋"을 다시 되돌리고, 원본 커밋을 복구하는 작업
- 커밋 히스토리에서 "Revert 'feature/spec-change'"와 같은 메시지로 되돌리기 커밋을 식별
git revert -m 1
명령어를 사용하여 merge commit을 되돌리고, 역순으로 복수의 되돌리기 커밋을 처리
섹션별 세부 요약
1. 되돌리기 커밋 식별
- Visual Studio: Git 히스토리에서 "Revert 'feature/spec-change'" 메시지로 되돌리기 커밋 확인
- Azure DevOps: 완료된 Pull Request의 "Commits" 탭에서 되돌리기 커밋의 해시값 확인
- 명령줄:
git log
명령어로 커밋 히스토리에서 되돌리기 커밋 식별
2. 새로운 브랜치 생성 및 마스터 통합
- 마스터 브랜치 업데이트:
git checkout master
→git pull origin master
- 원본 기능 브랜치로 이동:
git checkout feature/spec-change
- 새로운 브랜치 생성:
git checkout -b feature/revive-spec-change
- 마스터 브랜치와 통합:
git merge master
3. 되돌리기 커밋 반복 처리
- 단일 merge revert 커밋 되돌리기:
```bash
git revert -m 1
```
-m 1
플래그: 첫 번째 부모(일반적으로 master) 유지- 복수의 되돌리기 커밋 처리:
- 역순으로 처리:
git revert
,git revert
,git revert
- 예: 원본 커밋
C1
,C2
,C3
→ 되돌리기 커밋R1
,R2
,R3
→R3
→R2
→R1
순서로 처리
4. 충돌 해결 및 최종 적용
- 충돌 발생 시:
- 코드 편집기에서 충돌 수동 해결
git add .
으로 변경 사항 스테이징git commit
으로 변경 사항 커밋
- merge commit은 되돌리지 않음:
- 예: "Merge branch 'feature/spec-change' into master" 커밋은 무시
- 최종 브랜치 푸시 및 PR 생성:
```bash
git push origin feature/revive-spec-change
```
- Azure DevOps에서 새 Pull Request 생성
결론
- 되돌리기 커밋을 역순으로 처리하고, merge commit은 제외하여 충돌을 최소화
- Visual Studio 또는 CLI를 활용한 명령어 실행으로 작업 흐름 효율화
- "Revert 'feature/spec-change'" 메시지를 통해 되돌리기 커밋 식별 후, 히스토리 복구 가능