Skip to main content

#5. Git에 READ.md 파일만 있을때 로컬에서 처음 push 하는 경우


⚠️ 문제
  • GitHub에 이미 README.md가 있고, 로컬은 Git 초기화만 되어 있는 상태 처음 git push 하려고 한다.
  • GitHub에서 먼저 pull 받아온 뒤 그다음 병합 또는 덮어쓰기 → push​해야 한다.
  • 이 때 git pull --rebase 가 안먹히는 문제


🔍 원인 분석

명령어

사용 시점

의미 및 작동 방식

git pull origin main --allow-unrelated-histories

최초 1회만

서로 관련 없는 두 Git 히스토리를

강제로 병합

git pull origin main --rebase

❌ 사용 불가 (초기에는)

공통 조상이 있어야

rebase 가능함 → 이 상황에선 에러남

처음 1회만 pull 할 때 --allow-unrelated-histories를 써야 한다.

두 저장소가 '공통 커밋'이 없기 때문에 Git은 서로 관련이 없다고 판단하기 때문에 --rebase는 안 된다.

--allow-unrelated-histories는 공통 커밋 이력이 아예 없는 두 저장소를 병합할 때만 사용하기 때문에 한 번 쓰고 나면,

로컬과 원격이 X → A → B → C 처럼 같은 이력을 공유하게 되어 그 이후부터는 필요가 없다.


⚡ 해결 방법
# 1. 원격 저장소 추가
git remote add origin https://github.com/내아이디/레포이름.git

# 2. 원격 저장소의 변경사항 먼저 가져오기
git pull origin main --allow-unrelated-histories

# 3. 충돌 났다면 해결 후 커밋

# 4. 이제 정상적으로 푸시 가능
git push origin main

이후부터는 git pull 또는 git pull --rebase 한다.

  • git pull --rebase origin main → 깔끔한 히스토리 원할 때
  • git pull origin main → 단순히 병합만 원할 때