Programing

자식은 모든 변경 사항을 버리고 업스트림에서 가져옵니다.

crosscheck 2020. 7. 11. 10:04
반응형

자식은 모든 변경 사항을 버리고 업스트림에서 가져옵니다.


업스트림 저장소를 가져 와서 마스터를 대체하려면 어떻게해야합니까? 나는 내 repo에 마스터 인 하나의 브랜치를 가지고 있으며 완전히 엉망이되어 기본적으로 업스트림에서 다시 시작해야합니다. 나는 init이 일을 할 것이라고 생각하지만 더 쉬운 방법이 있습니까?


여기서 할 수있는 최소한 두 가지가 있습니다. 원격 리포지토리를 복제하거나 reset --hard공통 조상으로 가져간 다음 풀을 수행하면 원격 마스터의 최신 커밋으로 빨리 넘어갈 수 있습니다 .

구체적으로 말하면 Nevik Rehnel의 원래 답변을 간단히 확장 한 것입니다.

git reset --hard origin/master
git pull origin master

참고 : using git reset --hard은 커밋되지 않은 변경 사항을 버리고 git을 처음 사용하는 경우이 명령과 혼동하기 쉬울 수 있으므로 진행하기 전에 수행 할 작업을 이해해야합니다.


지점 마스터에있는 동안 : git reset --hard origin/master

그런 다음 정리 git gc하십시오 (맨 페이지에서 이에 대한 자세한 내용)

업데이트 : 당신은 또한 아마를 수행해야합니다 git fetch origin(또는 git fetch origin master당신이 경우 에만 해당 분기를 원하는); 재설정 전이나 후에이 작업을 수행해도 문제가되지 않습니다. (감사합니다 @ eric-walker)


단일 명령으로 수행 할 수 있습니다.

git fetch --all && git reset --hard origin/master

또는 한 쌍의 명령으로 :

git fetch --all
git reset --hard origin/master

보다 주 당신이 모든 로컬 변경을 잃게됩니다


git reset <hash>  # you need to know the last good hash, so you can remove all your local commits

git fetch upstream
git checkout master
git merge upstream/master
git push origin master -f

짜잔, 이제 포크가 업스트림과 동일합니다.

참고 URL : https://stackoverflow.com/questions/13781388/git-discard-all-changes-and-pull-from-upstream

반응형