[Git] Git 커밋 및 스테이징 문제 해결 가이드 (git rebase, git restore)
2025. 1. 26. 06:35ㆍ코딩 도구/개발 도구 & 환경 (Dev Tools & Environment)
반응형
Git 커밋 및 스테이징 문제 해결 가이드 (git rebase, git restore)
개발을 하다 보면, 특정 파일만 커밋하고 싶은데 실수로 여러 파일이 함께 커밋되었거나, 원격 브랜치와 동기화 오류가 발생할 수 있습니다. 이런 상황을 효과적으로 해결하는 방법을 정리해 보았습니다.
상황 설명
문제:
- 특정 파일 하나만 커밋하고 싶었으나, 여러 파일이 함께 스테이징되었음.
- 이미 git add . 또는 git commit을 실행한 상태.
- 원격 저장소에 아직 푸시하지 않은 상태이거나, 푸시 후 수정하고 싶은 경우.
해결책:
- 불필요한 파일을 스테이징에서 제거하거나, 최근 커밋을 되돌리고 특정 파일만 커밋.
특정 파일만 커밋하는 방법
1. 특정 파일만 추가하고 커밋하기 (정상적인 상황)
# 특정 파일만 스테이징
git add chap05/src/sec01/exam01/StringEqualsExample.java
# 해당 파일만 커밋
git commit -m "feat: StringEqualsExample 파일 추가"
이 방식은 처음부터 특정 파일만 선택하고 커밋할 때 사용합니다.
2. 이미 여러 파일을 커밋한 경우 (최근 커밋 되돌리기 git reset)
이미 git add . 또는 git commit을 실행했지만 특정 파일만 커밋하고 싶을 때:
# 최근 커밋 취소 (파일들은 그대로 유지됨)
git reset HEAD~1
# 특정 파일만 다시 스테이징
git add chap05/src/sec01/exam01/StringEqualsExample.java
# 특정 파일만 커밋
git commit -m "feat: StringEqualsExample 파일만 커밋"
이 명령어는 최근 커밋을 취소하고, 특정 파일만 다시 커밋하는 방식입니다.
3. 이미 커밋 후 원격에 푸시하기 전 (git restore와 ``)
만약 이미 git pull --rebase 도중 문제를 해결하고 특정 파일만 커밋하고 싶다면:
# 스테이징 해제
git restore --staged .
# 특정 파일만 다시 추가
git add chap05/src/sec01/exam01/StringEqualsExample.java
# 특정 파일만 커밋
git commit -m "feat: StringEqualsExample 파일 추가"
이미 원격에 푸시한 경우 (강제로 덮어쓰기 ``)
만약 실수로 원격 저장소에 여러 파일을 푸시한 경우, 강제로 덮어쓰기가 필요할 수 있습니다. (⚠️ 주의: 협업 시 신중하게 사용해야 합니다)
# 최근 커밋 되돌리기
git reset HEAD~1
# 특정 파일만 스테이징
git add chap05/src/sec01/exam01/StringEqualsExample.java
# 커밋 진행
git commit -m "feat: StringEqualsExample 파일만 커밋"
# 강제로 원격 브랜치에 덮어쓰기
git push --force origin main
정리: 추천하는 안전한 순서
- git restore --staged . → 스테이징 해제
- git add [파일 경로] → 원하는 파일만 추가
- git commit -m "커밋 메시지" → 원하는 파일만 커밋
- git push origin main → 푸시 진행
반응형
'코딩 도구 > 개발 도구 & 환경 (Dev Tools & Environment)' 카테고리의 다른 글
[Git] GitHub 502 오류 해결 방법 (Git Push 오류) (0) | 2025.02.01 |
---|---|
[IntelliJ] Run Configuration 사용하는 방법 (0) | 2025.01.31 |
VS Code와 GitHub 리포지토리 연결하기 (0) | 2025.01.18 |
[IntelliJ]에서 커피잔 아이콘은 보이는데 실행이 안 되는 문제 해결하기 (0) | 2025.01.17 |
[Git] SSH 전환 방법(GitHub 502 오류) (0) | 2025.01.14 |