728x90
반응형
들어가기
- 프론트, 백(me!) 레포지토리를 나눠서 사이드프로젝트를 진행 중에 있었다. 프론트 레포지토리를 로컬에 받아서 봐야하는 상황이 생겼다.
- 내가 Fork한 프론트 프로젝트를 받았는데 자꾸 옛날 커밋 정보만 남아있는 것이다. 신규 작업해주신 커밋 내용이 없었다.
- 아차!! 내가 Fork한 프로젝트는 최신 버전으로 업데이트가 안되는구나.. 깨달았고 민망함에 다음부터는 이러지 말자 깨닫고 진행한 내용을 작성해본다.
(git이라고는 master에 푸시밖에 안하는거 들통남..)
0. 기존 상황 가정
- 예전 시점에 원본 Repository를 Fork 하였고, 이후 원본 Repository가 변화되어있는 상황
- 로컬에 Fork한 Repository를 받은 상황
이러한 상황에서는 아무리 Pull(Fetch, Merge) 하여도 Fork한 Respository는 원본 기준의 최신상태가 아니기 때문에 포크했던 그 상태와 동일할 것이다. 원본과 동일한 상태를 만드려면 원본 Repository의 remote를 추가하고, 원본의 상태를 당겨와서, Fork한 Repository에 반영해주어야 한다. 아래에서 그 과정을 진행해 보자.
1. upstream remote 추가
보통 원본소스가 있는 곳을 upstream 이라고 명명한다. 이 이름으로 remote를 등록해주자. (Fork한 repository를 로컬에 받을 때 이 작업을 수동으로 해주는 것을 꼭 기억하자!)
$ git remote add upstream [원본 repository 주소]
2. 동기화 하기
원본의 branch의 변경 내용을 local로 받아와서 머지시킨다.
$ git fetch upstream/[브랜치명]
$ git merge upstream/[브랜치명]
3. Fork한 원격 저장소에 반영
동기화까지 완료하면 local 프로젝트가 최신으로 반영된다. Fork한 원격저장소에 반영하려면 push 명령어까지 완료하면 된다.
$ git push origin
728x90
반응형
'Git' 카테고리의 다른 글
[Git] 특정 파일 되돌리기 (git checkout) (0) | 2022.06.10 |
---|---|
(미완성) [Git/에러] Git Push 시 에러 해결 (fatal: refusing to merge unrelated histories) (0) | 2020.09.29 |
[Git] git GUI SourceTree 터미널에서 열기 (0) | 2019.02.01 |
[Git] 태그 (tag) (0) | 2019.01.31 |
[Git] pull과 fetch의 차이 (4) | 2019.01.29 |