2011-08-01 5 views
35

때때로, 특히. 나는 오직 하나의 원격 저장소 작업있을 때, 나는 git rebase -igit push origin master -f와 역사를 다시 작성 좋아합니다.git push -f의/반대와 유사한 git pull?

은 어떻게 병합하지 않고 강제 git pull origin master을합니까? -f 옵션을 사용해 보았지만 작동하지 않았습니다. 필자는 로컬 (git repo)의 기록을 원격 (origin)의 기록과 일치하도록 다시 작성하려고합니다.

+0

@ 매트 나이는 중복 결정에 대해 (항상) 관련이없는, 그리고 링크 된 질문은 더 upvotes을 가지고 있으며,로 더 자세한 답변은 좋은 후보입니다. 나도 몰라 –

+0

@MarkRotteveel, 내가 중복으로 뭔가를 폐쇄하는 것은 소급 논리적되지라고 생각합니다. – Matt

+0

@ 매트이지도입니다 : http://meta.stackexchange.com/questions/147643/should-i-vote-to-close-a-duplicate-question-even-though-its-much-newer-and- ha/147651 # 147651 –

답변

47
git fetch 
git reset --hard origin/master 
+4

물론'git fetch' 이후. – whitequark

+0

@whitequark 감사합니다! 답변에 추가되었습니다. – ma11hew28

+4

참고 : 이는 깨끗한 지점에서만 작동합니다. 로컬 작업 사본의 모든 변경 사항 또는 새 커밋은 손실됩니다. 나는 rebase를 사용하여 대답을 추가했다. –

16

수십 년 전에 answer by MattDiPasquale은 로컬 변경 또는 커밋을 모두 삭제합니다. 당신은 로컬 변경 사항이 있거나 저지른하지만, 역사를 다시 작성해야하는 경우

, 실행

git fetch origin 
git rebase origin/master 
+7

보존해야하는 것이 있다면 (로컬 커밋이 아닌) 현재 ​​unstaged 작업이 필요하다면'git stash && git fetch origin && git reset --hard origin/master && git stash pop' 만 입력하면됩니다. – novalore