Git

참고 02. Git 실무 5대 악명 높은 에러 해결 응급실 가이드

detached HEAD, local changes overwritten, refusing to merge, gitignore 미적용, push rejected 등 실무 빈발 5대 에러 1분 해결 레시피

· 1min read · 3 views
참고 02. Git 실무 5대 악명 높은 에러 해결 응급실 가이드

핵심 요약

detached HEAD, refusing to merge, local changes overwritten, .gitignore 미적용, push rejected 등 실무 5대 빈발 에러의 1분 응급 처치 레시피

Git을 사용하다 보면 터미널에 붉은색 fatal, error 메시지가 뜨며 작업이 가로막히는 순간이 있습니다. 프롬프트 상의 브랜치 표시(branch-name) $를 확인하며 구글링 없이 1분 만에 탈출하는 응급 처치법입니다.


상황 1: "브랜치를 바꾸려는데 파일이 덮어쓰여진다고 거부할 때"

(feature/order) $ git switch develop

error: Your local changes to the following files would be overwritten by checkout:
    app/Http/Controllers/OrderController.php
Please commit your changes or stash them before you switch branches.
Aborting

해결법

# 1. 작업 중인 내용 서랍에 임시 보관
(feature/order) $ git stash push -u -m "WIP"

# 2. 원하는 브랜치로 이동
(feature/order) $ git switch develop
Switched to branch 'develop'
(develop) $ 

# 3. 나중에 원래 브랜치로 돌아와서 복원
(develop) $ git switch feature/order
(feature/order) $ git stash pop

상황 2: "HEAD detached at ... (유령 상태)"

((a8f9e01...) detached HEAD) $ git status
HEAD detached at a8f9e01

해결법: 현재 detached 상태에서 만든 작업을 새 정식 브랜치로 구출하기

((a8f9e01...) detached HEAD) $ git switch -c rescue-my-work
Switched to a new branch 'rescue-my-work'

# 정식 브랜치로 복구 완료!
(rescue-my-work) $ 

상황 3: "fatal: refusing to merge unrelated histories"

(main) $ git pull origin main --allow-unrelated-histories

상황 4: ".gitignore에 넣었는데도 계속 Git에 잡힐 때"

# 로컬 파일은 보존하면서 Git 캐시 추적만 제거
(develop) $ git rm --cached app/Config/secret.json
(develop) $ git commit -m "chore: .gitignore 캐시 갱신"

상황 5: "Push Rejected (non-fast-forward)"

# 안전하게 최신 원격 커밋 뒤로 내 작업 이어붙이기
(develop) $ git pull --rebase origin develop
(develop) $ git push origin develop

Related Docs

Comments (0)

No comments yet. Be the first to comment!

Leave a Comment

로그인 후 댓글을 남길 수 있습니다.