우당탕탕 개발일기

[git] 내 레포에 다른 레포 코드 클론하기 본문

What I Learned/etc.

[git] 내 레포에 다른 레포 코드 클론하기

rilee 2025. 7. 15. 09:28
728x90

 

1) 내 레포 클론하기

git clone ${내 레포 주소}

 

2) 다른  레포를 ‘upstream’으로 등록하기

git remote add upstream ${포크할 레포}

## 확인하는 방법
git remote -v 
# origin: 내 레포
# upstream: 포크할 레포

 

3) upstream 변경사항 가져오기(fetch)

git fetch upstream
  • upstream/main, upstream/feature-xxx 같은 브랜치 정보가 로컬에 생긴다.

 

4) upstream 브랜치를 내 브랜치에 병합하기

  • Merge 방식 (기존 커밋 그대로 합치기) 
    • 원본의 커밋 히스토리를 있는 그대로 보존.
    • 언제 어떤 코드가 합쳐졌는지(merge commit) 기록이 남음.
git checkout main 
# --allow-unrelated-histories 없으면 “unrelated histories” 에러 발생...
git merge upstream/main --allow-unrelated-histories

 

충돌 나는 경우에는,
(1) 충돌 파일 수정
(2) git add <파일> 
(3) git merge --continue 로 해결

 

  • Rebase 방식 (커밋 히스토리 깔끔하게)
git checkout main 
git rebase upstream/main

 

충돌 나는 경우에는,
(1) 충돌 파일 수정
(2) git add <파일> 
(3) git rebase --continue 로 해결

 

5) 내 브랜치(origin)에 푸시하기

git push origin main

 

 

끄읏!

만약 B 레포에 새 업데이트 생기면? 🔄

git fetch upstream
git checkout main
git merge upstream/main
git push origin main

 

 

이렇게 하면 다른 레포엔 푸시 기록 전혀 안 남고, 내 레포에만 내 커밋이 깔끔하게 쌓인다 !

728x90