이미 커밋한 메시지를 나중에 수정해야 할 경우, git rebase -i
명령어를 통해 커밋 메시지를 안전하게 수정하는 전체 과정을 정리했습니다.
(특히 여러 개의 커밋 메시지를 한 번에 수정하고, GitHub에도 반영하고 싶은 경우)
git log --oneline
(예 : 최근 3개 커밋 중 수정할 커밋이 있다면)
git rebase -i HEAD~3
pick
→ reword
로 변경pick 771035b chore: reset-project 실행
reword e3e9a4e feat: Expo Router 및 Navigation 세팅
pick f14127a docs: README.md 수정
i
또는o
로 입력 모드 진입 → 수정 후 저장(cmd + S
) 후ESC → :wq
로 저장하고 나가기
feat: Expo Router 및 Navigation 세팅 (Tab, Stack 테스트)
- Tab Navigation 구현
- Stack Navigation 모달 테스트
- expo 버전 범위 (~ → ^) 변경 포함
vim 기준:
i
← 현재 줄에서 바로 수정o
← 아래 줄 새로 만들어서 입력ESC → :wq
← 반드시 저장(cmd + S
) 후 종료해야 적용됨
error: The following untracked working tree files would be overwritten by merge:
app/(tabs)/search.tsx
mkdir -p tmp-backup
cp "app/(tabs)/search.tsx" tmp-backup/
cp "app/modal.tsx" tmp-backup/
rm "app/(tabs)/search.tsx"
rm "app/modal.tsx"
git rebase --continue
mv "tmp-backup/search.tsx" "app/(tabs)/"
mv "tmp-backup/modal.tsx" "app/"
rm -r tmp-backup/
git push --force
git log --oneline # 수정된 메시지 확인
→ GitHub에서도 커밋 메시지 수정 완료된 것을 확인할 수 있음!
cp "app/(tabs)/search.tsx" tmp-backup/
git rebase -i
를 이용한 커밋 메시지 수정은 조금 까다롭지만,
형상관리 기록을 깨끗하게 유지하려면 꼭 배워둘 가치가 있어요 💪
🛠️ vim 기준 저장 방법 요약
i ← 현재 커서 위치에서 바로 입력 o ← 아래에 줄 추가 + 입력모드 ESC → :wq ← 저장 후 종료 (필수)
git rebase -i
나 git commit --amend
는 커밋 히스토리를 다시 쓰는 명령어입니다.
혼자 쓸 땐 매우 유용하지만, 협업 시에는 주의가 필요합니다.
rebase
또는 amend
한 후 --force push
를 하면,pull
받은 히스토리와 충돌 발생상황 | 사용 여부 | 이유 |
---|---|---|
혼자 작업하는 브랜치 | ✅ 가능 | 영향 없음 |
PR 올리기 전 내 브랜치 | ⚠️ 가능하지만 사전 공지 필수 | push 강제 덮어쓰기 때문 |
공유 브랜치(main, develop 등) | ❌ 금지 | 팀 전체 작업에 영향 줄 수 있음 |
--force
) 전 꼭 체크하세요!💡 커밋 정리는 좋지만, 팀워크를 깨지 않게 쓰는 게 더 중요해요!
Add Tip
직전 커밋 하나만 수정하려는 거라면 : git commit --amend 메시지 수정 후 저장하고 종료 → git push --force로 반영