로컬 지점을 완전히 망가뜨려서 다시 시작하고 싶습니다. 서버의 버전이 올바릅니다.
다시 시작하고 싶지 않고 내 로컬 기록을 사용하여 큰 실수를 수정하고 싶습니다. (필요하다면 할 수 있습니다.)
'깃 분기 이름 가져 오기및
깃 분기 이름 가져 오기`가 작동하지 않습니다. 내가 받는 메시지는 "최신 버전"이지만 내 로컬 버전이 서버의 버전과 일치하지 않습니다.
'깃 풀 오리진/브랜치이름'은 '찾을 수 없음' 오류를 표시합니다.
먼저, 현재 위치에 새 브랜치를 만듭니다(이전 '망친' 기록이 필요한 경우를 대비하여):
git branch fubar-pin
원격 브랜치 목록을 업데이트하고 새 커밋을 동기화한다:
git fetch --all
를 누른 다음, 브랜치를 오리진/브랜치가 가리키는 지점으로 재설정한다:
git reset --hard origin/branch
주의: 이렇게 하면 작업 트리의 모든 변경 사항이 제거됩니다!
로컬 브랜치가 망가졌을 때 제가 하는 일은 망가진 브랜치의 이름을 바꾸고 업스트림 브랜치를 다시 체크 아웃/분기하는 것입니다:
git branch -m branch branch-old
git fetch remote
git checkout -b branch remote/branch
그런 다음 이전 브랜치에서 아무것도 원하지 않는다고 확신하면 브랜치를 제거합니다:
git branch -D branch-old
하지만 보통은 이전 브랜치에 무언가가 있을 경우를 대비해 로컬에 남겨두는 편입니다.
로컬 브랜치에 삭제하고 싶은 수정 사항이 있을 수 있습니다. 이렇게 하려면 git reset
을 사용하여 브랜치 헤드를 업스트림 리포지토리의 브랜치에서 분기한 마지막 지점으로 재설정해야 합니다. 그리고 git branch -v
를 사용하여 업스트림 브랜치의 sha1 id를 찾은 다음 git reset SHA1ID
를 사용하여 브랜치를 재설정합니다. 그런 다음 git 체크아웃
을 수행하여 디렉토리에 남아있는 변경 내용을 삭제할 수 있어야 합니다.
참고: 항상 백업된 리포지토리에서 이 작업을 수행하세요. 그래야 제대로 작동했는지 스스로 확인할 수 있습니다. 그렇지 않다면 백업으로 되돌릴 수 있습니다.
git reset --hard
이는 모든 곳이 헤드에게 변경되는지 되돌려집니다 해당 지역