다른 사람과 함께 깃허브를 쓰다 보니 항상 merge 에러가 나서 고생했던 기억 ...
이 기회에 명확하게 정리해보려고 한다!!
먼저, 내가 기존에 로컬 -> 원격 push하는 방법은 아래와 같았다.
git add .
git commit -m "commit_message"
git push
잘 될 때도 있었지만, 로컬과 원격의 내용이 다르다며 push가 실패하는 경우도 있었다. 클로드에게 물어보니 ...
기존의 방법이 잘 되는 경우는, 완전히 새로운 파일/폴더를 push하는 경우다.
원격: A → B → C
로컬: A → B → C → D (내가 추가)
기존의 방법이 실패하는 경우는, 원격에서 또다른 사용자가 push한 내용을 내가 덮어씌울려고 하는 경우다.
원격: A → B → C → E (다른 사람이 추가)
로컬: A → B → C → D (내가 추가)
따라서, 안전하게 변경사항을 push하기 위해서는 항상 원격의 내용을 로컬에 pull한 다음 push를 하는 것을 권장한다고 한다. 그러나, 로컬의 내용 역시 안전하게 보존하고 싶은 경우가 있기 때문에, 최종적으로는 아래와 같은 단계를 거치면 에러 없이 merge 후 변경사항을 push할 수 있다.
git stash # 로컬의 내용을 저장
git pull origin mcq --no-rebase # 로컬과 원격의 내용을 merge (병합)
# -------------------
commit 메시지를 작성하는 새로운 창이 뜸.
i (convert to insert mode) -> write commit message -> esc -> :wq
# -------------------
git stash pop # (충돌이 없으면) stash한 내용 복원
git push
'🖥️ 에러 해결 기록' 카테고리의 다른 글
| [git] conflict 해결하기 (0) | 2025.12.21 |
|---|---|
| 모델을 여러 개의 GPU에 로드해야 할 때 (1) | 2025.08.10 |
| requirements.txt 만들기 (0) | 2025.08.09 |
| 가상환경 / tmux / 자주 쓰이는 터미널 명령어 (1) | 2025.08.08 |
| [터미널] Unity ML-Agents 파이썬 패키지 설치 (3) | 2025.03.17 |