git reset --hard origin/master의 의미는 무엇입니까?
나는 했습니다.git pull
오류가 발생했습니다.
병합할 때 다음 작업 트리 파일을 덮어씁니다...병합하기 전에 해당 항목을 이동하거나 제거하십시오.
이 문제를 해결하기 위해 다음을 수행했습니다.
git fetch
git reset --hard origin/master
이제 내가 할 때git pull
그것은 모든 것을 최신으로 말합니다.이러한 명령을 실행하면 정확히 어떤 일이 발생하는지 알고 싶습니다.알고있어요git fetch
변경 사항을 내 로컬 레포에 병합하지 않고 원격 레포에서 변경 사항을 가져옵니다.
의 의미는 무엇입니까?git reset --hard origin/master
어떻게 작동합니까?
git reset --hard origin/master
says: 내 모든 준비된 변경사항과 준비되지 않은 변경사항을 버리고, 현재 지역 지점의 모든 것을 잊어버리고 정확히 동일하게 만듭니다.origin/master
.
명령을 실행하기 전에 이 질문을 하고 싶었을 것입니다."하드 리셋"과 동일한 단어를 사용하여 파괴적 특성을 암시합니다.
Git(2.23+)의 최신 버전에서는 다음을 사용할 수 있습니다.
git switch --force-create master origin/master
관련 참조 문서
위에서 답변한 바와 같이 변경 사항을 취소하고 HEAD를 강제로 다시 이동하려는 경우 이 옵션을 사용합니다.origin/master
.
열심히 재설정하고 실수로 변경사항을 취소한 경우에는 언제든지 변경할 수 있습니다.git reflog
HEAD가 변경될 때마다 로컬 저장소 목록을 보고 원하는 커밋샤를 확인합니다.
할 수 있는 일:
git checkout <commit_sha>
원하는 커밋을 가리키는 새 분기를 체크아웃합니다.git reset HEAD --hard <commit_sha>
원하는 커밋으로 헤드를 다시 이동합니다.
이것은 마스터에 이미 있고 마스터에서 작업했지만 작업 흔적 없이 오리진/마스터로 돌아가려는 경우 마스터로 재설정하는 경우를 제외한 것입니다.
새 분기의 이름을 결정하기를 원하지 않았기 때문에 새 분기를 체크아웃하지 않았다고 가정해 보십시오.그런 다음 리포지토리 폴더를 제거하고 이전의 새로 온 시간처럼 다시 복제해야 합니다.
왜 그런 것일까요?
git reset --hard origin/master
로컬 분기에 있는 경우에만 완전 삭제로 작동합니다.대신 마스터 분기에 있고 변경한 경우에는 변경하거나 변경한 모든 파일만 삭제할 수 있습니다.추가한 폴더는 삭제할 수 없습니다.이러한 폴더를 제거하려면 전체 repo 폴더를 제거하고 수동으로 제거하지 않으려면 다시 복제해야 합니다.이러한 빈 폴더는 "하드 재설정" 후에도 유지되며, 이는 .gitignore 파일에 종속되지 않습니다.
언급URL : https://stackoverflow.com/questions/15432052/what-is-the-meaning-of-git-reset-hard-origin-master
'programing' 카테고리의 다른 글
좋은 질문입니다.NET 개발자는 대답할 수 있어야 합니까? (0) | 2023.05.10 |
---|---|
SSIS Excel 가져오기 강제 적용 잘못된 열 유형 (0) | 2023.05.10 |
글로벌 Git 구성을 표시하려면 어떻게 해야 합니까? (0) | 2023.05.10 |
Postgre 업그레이드 방법데이터 손실 없이 버전 9.6에서 버전 10.1로 SQL을 변경하시겠습니까? (0) | 2023.05.10 |
이 서비스를 사용할 수 있는 권한이 없습니다. iTunes 앱 업로드 오류 (0) | 2023.05.10 |