upstream 레포와 fork 레포 명령어 정리가 필요해서 해당 게시글을 작성
$ git remote -v
위의 명령어를 치면 fork한 내 개인 repo 주소가 나옴
~/PycharmProjects/PythonBook_py/ [main] git remote -v
origin https://github.com/Jupiter-J/PythonBook_py.git (fetch)
origin https://github.com/Jupiter-J/PythonBook_py.git (push)
원격 저장소[upstream]을 연결하기 위해 해당 명령어를 친다
$ git remote add upstream [원격 저장소 주소]
git remote -v로 upstream이 생성된것을 확인
~/PycharmProjects/PythonBook_py/ [main] git remote add upstream https://github.com/Python-Algorithm-Study/PythonBook.git
~/PycharmProjects/PythonBook_py/ [main] git remote -v
origin https://github.com/Jupiter-J/PythonBook_py.git (fetch)
origin https://github.com/Jupiter-J/PythonBook_py.git (push)
upstream https://github.com/Python-Algorithm-Study/PythonBook.git (fetch)
upstream https://github.com/Python-Algorithm-Study/PythonBook.git (push)
원본 저장소 upstream 저장소가 가진 commit 내역을 불러오기
git fetch --all
$ git fetch upstream
원본 저장소의 최신 내용을 가져온다
$ git checkout main
$ git merge upstream/main
$ git add .
$ git commit -m "[커밋내용]"
$ git push origin main
위의 PR에 들어가서 Merge를 하면 upstream 레파지토리에 해당 내용들이 반영된다.
upstream 저장소의 코드를 동기화시키지 않고 파일 수정 + 커밋을 날려버렸다. 이걸 잊고 커밋내역이 남은 채로 동기화를 시켰더니 해당 오류가 나옴
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/Jupiter-J/PythonBook_py.git'
깔끔하게 나의 로컬을 현재 깃허브(upstream)상태로 덮어씌우고 싶을때 사용하는 명령어 (대신 내 작업 내용(로컬작업)이 날라갈수 있음)
$ git reset --hard origin/<branch_name>
위의 명령어를 치니 upstream동기화전에 날린 커밋이 보임
해당부분이 없어졌다
참고자료
https://seungwubaek.github.io/tools/git/contributing_using_pull_request/
https://velog.io/@jisubin12/Github-외부저장소-fork-pull-request-동기화-하기
좋은 글 감사합니다.