merge conflict
merge conflict는 서로 다른 브랜치에서 같은 파일의 같은 부분을 다르게 수정해 Git이 자동으로 합칠 수 없을 때 발생합니다.
<<<<<<< HEAD
현재 브랜치 내용
=======
병합하려는 브랜치 내용
>>>>>>> feature
해결 흐름: 충돌 표시가 있는 파일을 열어 최종 내용을 직접 정리하고, 저장한 뒤 git add와 commit으로 병합을 완료합니다.
Git 오류 해결
Git 오류는 메시지 뜻을 이해하면 대부분 현재 브랜치와 원격 브랜치 상태를 정리하는 문제입니다. 자주 만나는 상황을 짧게 정리했습니다.
merge conflict는 서로 다른 브랜치에서 같은 파일의 같은 부분을 다르게 수정해 Git이 자동으로 합칠 수 없을 때 발생합니다.
<<<<<<< HEAD
현재 브랜치 내용
=======
병합하려는 브랜치 내용
>>>>>>> feature
해결 흐름: 충돌 표시가 있는 파일을 열어 최종 내용을 직접 정리하고, 저장한 뒤 git add와 commit으로 병합을 완료합니다.
push 시 non-fast-forward 오류가 나면 원격 브랜치에 로컬이 모르는 커밋이 있다는 뜻입니다.
git pull
# 충돌이 있으면 해결
git push
팀 작업에서는 force push가 다른 사람의 커밋을 덮을 수 있으므로 먼저 pull로 원격 변경을 반영하는 흐름이 안전합니다.
detached HEAD는 브랜치가 아니라 특정 커밋을 직접 체크아웃한 상태입니다. 이 상태에서 커밋하면 브랜치 이름으로 추적되지 않아 잃어버리기 쉽습니다.
git switch -c fix-from-old-commit
해당 상태에서 작업을 이어가려면 새 브랜치를 만들어 커밋을 보존하는 것이 좋습니다.
작업을 시작하기 전 현재 브랜치를 확인하고, 기능 단위로 브랜치를 나누면 충돌 범위를 줄일 수 있습니다.
git branch
git switch -c feature/sql-practice
연습 문제 정답/해설: 현재 브랜치 목록을 확인하는 명령은 git branch이고, 새 브랜치를 만들며 이동하는 명령은 git switch -c 브랜치명입니다.
Git 문제 풀기