git reflog = Git에서 했던 모든 행동 기록장
→ 실수했을 때 되돌아갈 수 있게 도와주는 타임머신이에요.
좋아요! 이번엔 git revert를 쉽게 설명해드릴게요.
앞서 봤던 reflog이 "타임머신"이라면, revert는 **"실수한 커밋을 되돌리는 안전한 취소 버튼"**이에요. ✨
git revert가 뭐예요?👉 실수한 커밋 내용을 취소하고 싶을 때,
그 내용을 반대로 되돌리는 새 커밋을 만드는 명령어예요.
📌 원래 커밋은 그대로 두고, 새 커밋으로 덮는 방식이라
히스토리를 안전하게 보존할 수 있어요.
→ 협업할 때 아주 좋아요!
$ git log --oneline
9c3c4f2 Fix typo in README
a3f5d3e Add login feature
1a2b3c4 Initial commit
여기서 a3f5d3e 커밋을 되돌리고 싶다면?
$ git revert a3f5d3e
→ 자동으로 **"되돌림 커밋"**이 생겨요!
📄 커밋 메시지:
Revert "Add login feature"
revert vs reset 차이| 명령어 | 설명 | 안전성 | 협업 시 |
|---|---|---|---|
revert | 되돌리는 새 커밋 생성 | ✅ 안전함 | ✅ 추천 |
reset | 과거 커밋으로 되돌려 덮어씀 | ⚠️ 위험함 | ❌ 권장 안 함 |
git revert= 실수한 커밋을 되돌리는 새 커밋 만들기!
→ 기존 기록은 건드리지 않고, 안전하게 취소하는 방법이에요. 👍
#log 정보 확인 후 커밋 해시 확인 및 복사
git log
#복사한 커밋 해시를 이용해 reset 옵션으로는 hard를 사용
git revert [커밋 해시]
#다시 한번 log를 활용해 정상적으로 reset이 되었는지 확인
git log
| 상황 | 추천 방식 |
|---|---|
| 혼자 실험 많이 했고, 결과만 남기고 싶을 때 | squash |
| 커밋 히스토리를 유지하되 main 위에 정렬하고 싶을 때 | rebase |
| 협업 중이고, 팀원 히스토리를 존중하고 싶을 때 | merge (기본) |
#merge-squash
git merge --squash (대상 브랜치)
#rebase
#합치려는 branch로 이동하는 명령어
git switch [이동을 원하는 branch]
#합치려는 branch의 커밋 이력을 합칠때 사용하는 명령어
git rebase main
#main branch로 이동
git switch main
#main에서 main branch와 합치고자하는 branch를 merge 진행
git merge [합치고자하는 branch명]
예)git switch develop
git rebase main
git switch main
git merge develop