답변:
git reset --hard 는 마지막 커밋 이후 모든 것을 버리고 싶다면 도움이 될 수 있습니다.
git reset --hard HEAD^
정말로 받아 들여지는 대답이어야합니다. OP는 다른 지점에 대해 묻지 않았습니다.
변경 사항을 원하지 않고design
리모트의 브랜치와 정확히 일치하기를 원한다면 브랜치를 삭제하고 다시 생성 할 수도 있습니다.
# Switch to some branch other than design
$ git br -D design
$ git co -b design origin/design # Will set up design to track origin's design branch
@Will, git immersion 은 정말 멋지고 간단한 git 튜토리얼입니다. 다음과 같은 경우 변경 사항을 실행 취소하는 방법을 보여줍니다. 실습 14-18
Ruby
항상 선택하지 않는 것 installed..which 할 수
로컬 브랜치의 변경 사항을 삭제하려면 git stash 명령을 사용하여 이러한 변경 사항을 숨길 수 있습니다.
git stash save "some_name"
변경 사항이 저장되고 나중에 원할 경우 검색하거나 삭제할 수 있습니다. 이렇게하면 브랜치에 커밋되지 않은 코드가 없으며 git pull을 사용하여 메인 브랜치에서 최신 코드를 가져올 수 있습니다.
나는 병합을 한 후 바로 체크 아웃 하는 것을 잊은 후에이 질문을 발견 했습니다. 당신은 그것을 짐작했습니다 : 나는 master에서 직접 몇 개의 파일을 수정하기 시작했습니다 . 오! 내 상황이 거의 독특하지 않기 때문에 (우리는 모두 해봤지만;->), 모든 변경 사항을 취소하는 데 사용했던 되돌릴 수있는 방법을 제공합니다. 마스터가 다시 개발하는 것처럼 보이입니다.
git diff
수정 된 파일을 확인하고 오류 범위를 평가하기 위해 a 를 수행 한 후 다음을 실행했습니다.
git stash
git stash clear
먼저 모든 변경 사항을 숨긴 후 다음으로 지워졌습니다. 오류가있는 파일에 대한 모든 변경 사항마스터이 사라지고 패리티가 복원되었습니다.
이제 이러한 변경 사항을 복원하고 싶다고 가정 해 보겠습니다. 할 수 있어요. 첫 번째 단계는 방금 지웠거나 삭제 한 숨김의 해시를 찾는 것입니다.
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
해시를 학습 한 후 다음을 사용하여 커밋되지 않은 변경 사항을 성공적으로 복원했습니다.
git stash apply hash-of-cleared-stash
저는 이러한 변경 사항을 복원하고 싶지 않았고, 복원 할 수 있는지 확인하고 싶었 기 때문에 다시 지 웠습니다.
또 다른 옵션은 변경 사항을 지우는 대신 숨김을 다른 분기 에 적용하는 것입니다. 따라서 잘못된 브랜치에서 작업 한 변경 사항을 지우는 측면에서stash
에서 복구 할 수있는 많은 유연성을 제공합니다.
Anyhoo, 분기의 변경 사항을 지우는 가역적 수단을 원한다면이 사용 사례에서 전술 한 방법은 덜 위험한 방법입니다.
git reset --hard HEAD^