우당탕탕 개발일기
[git] 내 레포에 다른 레포 코드 클론하기 본문
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
'What I Learned > etc.' 카테고리의 다른 글
PDF 파일에 있는 메타데이터 없애기 (0) | 2025.08.20 |
---|---|
[리눅스/puTTY] 리눅스에서 파일 복사 붙여넣기 (0) | 2025.01.14 |
[VSCode] Delete `␍`eslint 해결 방법(feat. CRLF와 LF) (1) | 2024.12.23 |
ESLint 설정 가능한 규칙들 (0) | 2023.09.18 |
npm run dev 에러도 없고, 실행도 되지 않을 때 (0) | 2023.09.12 |