<< 목차 >>
* 첫 번째 방법 - sync fork
* 두 번째 방법 - bash를 이용하여 포크 주소를 이용하여 fetch해오는 방법
첫 번째 방법
sync fork -> 내 원격 master브랜치로 복사 완료 -> 내 로컬에서 pull 로 원격 master 데이터 가져오기 -> 내 로컬 브랜치를 내 로컬 master와 merge하기.
1. sync fork 클릭!
sync fork 하는 것은 내가 포크해온 레포지토리와 내 레포지토리의 master 브랜치에 싱크가 맞춰지는 것.
2. 포크 레포지토리와 연결된 프로젝트가 있는 폴더로 가서 git bash 열기.
3. git checkout master
branch를 master로 checkout. ( 옆에 master 뜨는지 확인. )
※ 브랜치를 옮길 때는 change된 것을 stash 해주어서 잠시 임시 저장하던지, commit을 해놓던지 해야 한다. commit할 만한 작업이 아니면 stash를 해주자.
※ stash란? 새로운 stash를 스택에 만들어 하던 작업을 임시로 저장하는 것을 의미한다.
내가 <지수>브랜치에서 작업을 하다가 change가 있는데 <master> 브랜치로 이동을 하려고 하면 <지수>브랜치에서 작업하던 change가 날아갈 수도 있다. 그런데 또 commit하기에는 애매한 상황일 수도 있다. 그럴 때는 stash를 이용하여 내가 하던 작업을 임시로 저장하고 브랜치를 옮기는 것.
3-1) git stash 명령어로 stash를 해준다. 이제 working directory는 깨끗해졌다..! 다른 브랜치로 안전하게 이동 가능!
4. git pull origin master
origin(원격 저장소. 레포지토리)에 있는 데이터를 내 로컬 마스터 브랜치로 가져온다.
5. git checkout Jisoo(내 브랜치 이름)
다시 내 브랜치로 이동.
6. git merge master
주소 끝에 내 브랜치로 이동하였는지 제대로 확인하고 마스터 브랜치 데이터 내 브랜치로 머지.
7. 충돌이 나면 충돌 해결 후 다시 git merge master.
8. 아까 stash를 했다면 git stash apply를 하여 내 change를 다시 가져온다.
9. sync가 다 맞춰졌다. 작업 이어하기!
두 번째 방법
이 방법에서는 연습한 fork의 메인 브랜치가 main 이었으므로 main으로 기록.
1. git checkout main
master 브랜치로 이동한다. 이 때, change가 있으면 git stash를 이용해 stack에 임시 저장해 놓는다.
2. git remote -v
현재 등록되어 있는 원격 저장소를 확인한다.
3. git remote add upstream <fork해온 레포 주소>
이 주소에 있는 원격 저장소를 upstream이라는 이름으로 등록해줘!
4. git remote -v
다시 원격 저장소를 확인해보면 upstream이라는 포크 원격 저장소가 추가 되어 있다.
5. git fetch upstream
upstream 원격 저장소에 있는 내용을 fetch해서 일단 가져온다. fetch는 일단 가져오기만 하는 것이다. fetch + merge 가 pull!
6. git merge upstream/main
upstream에 있는 원격 저장소를 main 브랜치에 머지해줘.
7. git push origin main
일단 main 브랜치에 있는 내용을 원격에 등록해놓는다.
8. git checkout <자기 브랜치>
자기 브랜치로 checkout해준다.( 잘 checkout 되어 있는지 항상 확인 잘 할 것!!)
9. git merge main
메인 브랜치에 있던 데이터가 내 브랜치로 머지 되었다.
10. 본인 브랜치에서 그대로 작업을 진행.
두 번째 방법 참고 포스트.
[Git] Fork 한 repository 최신으로 동기화하기
Fork 한 repository 를 최신으로 동기화시켜야 할 때가 있다. Open Source 에 단발성이 아닌 지속적으로 contribution 하려 할 때수정해서 사용하기 위해 fork 해온 원본 repository 에서 업데이트된 부분을 받아
json.postype.com
스터디를 하다가 포크한 리포지토리를 최신으로 동기화 하는 방법에 대해서 기록할 필요성을 느껴 공부하고 연습하고 기록한다. 점점 깃이 익숙해지고 예전보다 오류를 봐도 당황하는 정도가 확실히 줄었다! 요즘 나보다 잘하는 사람들을 보며 멘탈이 많이 나가는데 그래도 어쩌겠나. 멈추지 않고 하는 수 밖에. 오늘의 나는 어제의 나보다 잘한다!! 화이팅!!
'STUDY > GIT' 카테고리의 다른 글
[TIL] Github Action이란? CI/CD에 대해 (0) | 2023.07.28 |
---|---|
[Git] fork가 아니라 같은 Repo의 Collaborator일 때, Pull Request 방법 기록(레포지토리 파는 사람 / Collaborator) (1) | 2023.07.17 |
[TIL] 풀리퀘스트로 코드 리뷰하기! (0) | 2023.06.13 |
[TIL] Git reset & revert 연습 (0) | 2023.06.10 |
[TIL] pull request 연습. (0) | 2023.05.26 |