예를 들어 작업 공간에 test.html이라는 새 파일을 만든 다음 git status:
git이 새로 추가된 파일을 감지하고 추가하라는 메시지를 표시합니다. 일시적으로 저장 영역을 추가합니다.
다음을 실행하세요:
git Reset --hard
아무것도 실행되지 않은 것 같습니다. git 상태를 보세요:
아직입니다. 파일이 방금 추가되었을 때의 git 상태입니다. Tip. 새로 추가된 test.html은 삭제되지 않았습니다.
이제 실행:
git add dist/test.html
git 상태 보기:
새로 추가된 test.html을 임시 저장 영역에 넣고 다음을 실행합니다:
git Reset --hard
git status를 다시 보면 작업공간과 Staging Area가 모두 깨끗하고 새로 추가된 test.html도 없어져 있다.
두 작업의 차이점을 요약합니다.
또한 새 test.html 파일을 만듭니다.
첫 번째는 직접 git Reset --hard를 생성하는 것입니다. new test.html 파일은 작업공간에 보관됩니다
두 번째 방법은 이 새 test.html 파일을 먼저 추가하고 임시 저장 영역에 추가한 후 git Reset하는 것입니다. --hard, 작업공간의 test.html 파일도 삭제됩니다.
git Reset --hard가 마지막으로 제출된 레코드로 작업공간과 스테이징 영역을 덮어쓰는 경우 첫 번째 경우 test.html을 삭제해야 합니다. git Reset --hard가 추적되지 않은 파일을 처리하지 않는 경우 두 번째 경우에는 test.html이 작업 공간에서 삭제되지 않습니다.
벌써 어지러워서 git의 답변을 기다리고 있는 것 같아요. 아마도 git의 버그인 것 같아요.
git Reset --hard는 스테이징 영역과 작업 공간의 내용을 HEAD가 가리키는 버전으로 재설정합니다.
두 번째 경우에는 스테이징 영역과 작업 영역의 test.html이 사라졌습니다.
첫 번째 경우는 첫 번째 사진을 자세히 보면 test.html이 Untracked 파일이라는 것을 알 수 있는데, 이는 해당 파일이 추적되지 않았음을 의미하므로 당연히 삭제되지는 않습니다.
으아아아
git reset
Stage와 Working 영역에 영향을 미치기 때문에(직접 말씀하셨네요) Git에 버그가 있는 것이 아니라 기본 개념을 이해하지 못하고 있다는 것입니다.1. 임시 저장 영역을 취소하려면 git Reset을 사용하세요. --hard를 사용하지 마세요.
2. 작업 공간을 취소하려면 git checkout을 사용하세요.