개발관련/Git

GitHub에서 분기 된 저장소를 업데이트하거나 동기화 하는 방법

Rateye 2021. 12. 13. 00:27
728x90
반응형
질문 : GitHub에서 분기 된 저장소를 업데이트하거나 동기화하려면 어떻게하나요?

프로젝트를 분기하고 몇 가지 수정 사항을 적용하고 수락 된 풀 요청을 생성했습니다. 며칠 후 다른 기여자가 변경했습니다. 그래서 내 포크에는 그 변화가 없습니다.

변경 사항을 포크로 가져 오려면 어떻게해야합니까? 기여할 추가 변경 사항이있을 때 내 포크를 삭제하고 다시 만들어야합니까? 아니면 업데이트 버튼이 있습니까?

답변

분기 된 저장소의 로컬 복제본에서 원본 GitHub 저장소를 "원격"으로 추가 할 수 있습니다. ( "Remotes"는 저장소 URL의 별명과 같습니다 origin 은 하나입니다.) 그런 다음 해당 업스트림 저장소에서 모든 분기를 가져오고 업스트림 버전에서 계속 작업하도록 작업을 리베이스 할 수 있습니다. 다음과 같은 명령 측면에서 :

# Add the remote, call it "upstream":

git remote add upstream https://github.com/whoever/whatever.git

# Fetch all the branches of that remote into remote-tracking branches

git fetch upstream

# Make sure that you're on your master branch:

git checkout master

# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:

git rebase upstream/master

마스터 브랜치의 히스토리를 다시 작성하지 않으려면 (예 : 다른 사람이 복제했을 수 있기 때문에) 마지막 명령을 git merge upstream/master 바꿔야합니다. 그러나 가능한 한 깔끔한 추가 풀 리퀘스트를 만들려면 리베이스하는 것이 좋습니다.

upstream/master 로 리베이스 한 경우 GitHub의 자체 분기 저장소로 푸시하기 위해 강제로 푸시해야 할 수 있습니다. 다음과 같이 할 수 있습니다.

git push -f origin master

리베이스 한 후 처음으로 -f 를 사용하면됩니다.

출처 : https://stackoverflow.com/questions/7244321/how-do-i-update-or-sync-a-forked-repository-on-github
728x90
반응형