#5. Git에 READ.md 파일만 있을때 로컬에서 처음 push 하는 경우
⚠️ 문제
- GitHub에 이미 README.md가 있고, 로컬은 Git 초기화만 되어 있는 상태 처음 git push 하려고 한다.
- GitHub에서 먼저 pull 받아온 뒤 그다음 병합 또는 덮어쓰기 → push해야 한다.
- 이 때 git pull --rebase 가 안먹히는 문제
🔍 원인 분석
명령어 | 사용 시점 | 의미 및 작동 방식 |
---|---|---|
| ✅ 최초 1회만 | 서로 관련 없는 두 Git 히스토리를 강제로 병합 |
| ❌ 사용 불가 (초기에는) | 공통 조상이 있어야 rebase 가능함 → 이 상황에선 에러남 |
처음 1회만 pull 할 때 --allow-unrelated-histories를 써야 한다.
두 저장소가 '공통 커밋'이 없기 때문에 Git은 서로 관련이 없다고 판단하기 때문에 --rebase는 안 된다.
로컬과 원격이 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 → 단순히 병합만 원할 때