원격 분기로 로컬 분기 덮어쓰기
지역 지사를 완전히 망쳤으니 다시 시작하고 싶습니다.서버의 버전이 정확합니다.
처음부터 다시 시작하고 싶지 않아요. 저는 제 지역의 역사를 이용해서 제 큰 실수를 고치고 싶습니다. (필요하다면 할 수 있습니다.)
git fetch branchname
,그리고.git pull branchname
일을 하지 마.메시지는 "최신"이지만, 로컬 버전이 서버 버전과 일치하지 않습니다.
git pull origin/branchname
찾을 수 없음 오류가 발생합니다.
먼저 현재 위치에 새 분기를 만듭니다(이전의 'screwed 업' 기록이 필요한 경우).
git branch fubar-pin
원격 분기 목록을 업데이트하고 새 커밋을 동기화합니다.
git fetch --all
그런 다음 분기를 원점/branch가 가리키는 지점으로 재설정합니다.
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 checkout
디렉토리에 남겨둔 변경사항을 삭제합니다.
참고: 백업 레포에서는 항상 이 작업을 수행합니다.그렇게 하면 제대로 작동했다고 확신할 수 있습니다.그렇지 않은 경우 백업을 복구해야 합니다.
git reset --hard
이는 모든 로컬 변경 사항을 오리진 헤드로 되돌리기 위한 것입니다.
언급URL : https://stackoverflow.com/questions/6229764/overwriting-my-local-branch-with-remote-branch
'source' 카테고리의 다른 글
테이블의 항목을 재정렬하는 방법 (0) | 2023.10.22 |
---|---|
C에서 함수를 가져옵니다. (0) | 2023.10.17 |
사람과 구별할 수 있는 랜덤 컬러 생성 (0) | 2023.10.17 |
부트스트랩 3의 필수 필드에 별표 추가 (0) | 2023.10.17 |
도커 구성, net:host에서 컨테이너 실행 (0) | 2023.10.17 |