Git의 비정상적인 변화를 어떻게 버리려면 어떻게합니까?
질문
인덱스가 아닌 작업 사본의 변경 사항을 어떻게 버리려면 어떻게합니까?
답변
현재 작업 디렉토리의 모든 비정상 파일의 경우 :
git checkout -- .
특정 파일 사용 :
git checkout -- path/to/file/to/revert
- 모호성을 제거하려면 (이는 인수 분리로 알려져 있습니다).
GIT 2.23 이후에,보다 구체적으로 사용하기를 원할 수 있습니다.
git restore .
묻다.
git restore path/to/file/to/revert
Git 스위치와 함께 오버로드 된 Git Checkout (여기에서 참조)을 대체하고 따라서 인수 무증함을 제거합니다.
답변
또 다른 빠른 방법은 다음과 같습니다.
git stash save --keep-index --include-untracked
당신은 그것에 대해 철저하고 싶지 않으면 --include-untracked를 포함 할 필요가 없습니다.
그런 다음 원하시는 경우 Git Stash Drop 명령으로 숨김을 삭제할 수 있습니다.
답변
완전한 솔루션이 다음과 같습니다.
git clean -df
git checkout -- .
Git Clean은 모든 untracked 파일을 제거합니다 (경고 : .gitignore에서 직접 언급 된 무시한 파일을 삭제하지는 않지만 폴더에 거주하는 무시 된 파일을 삭제할 수 있음).
답변
이렇게하면 현재 디렉토리의 현재 인덱스가 현재 디렉토리의 모든 변경 사항을 아래쪽으로 내려 놓습니다.
git checkout .
또는 인덱스에서 모든 파일을 체크 아웃하는 작업 트리 파일을 덮어 씁니다.
git checkout-index -a -f
답변
git clean -df
현재 디렉토리에서 시작하여 버전 컨트롤이 아닌 파일을 재귀 적으로 제거하여 작업 트리를 정리합니다.
-d : untracked 파일 외에도 추적되지 않은 디렉토리를 제거하십시오.
-f : 힘 (clean.requireforce 설정에 따라 필요하지 않을 수 있음)
Git을 실행하여 수동을 보려면 청소하십시오
답변
2019 업데이트
이제 하나의 추적 된 파일에서의 비정상적 인 변경 사항을 버립니다.
git restore <file>
현재 디렉토리 (재귀 적으로)의 모든 추적 된 파일에서 다음과 같습니다.
git restore .
리포지토리의 루트에서 후자를 실행하면 프로젝트의 모든 추적 된 파일에서 비정상적인 변경 사항을 삭제합니다.
메모
Git Restore는 2019 년 7 월에 도입되었으며 Git Checkout 명령의 분할의 일부로 버전 2.23에서 Branch에 대한 파일 및 Git 스위치에 대한 Git Restore에 릴리스되었습니다.
Git Checkout은 여전히 익숙해 지므로 이전 답변이 완벽하게 유효합니다.
작업 트리의 비정상적인 변경 사항으로 Git 상태를 실행하면 이제 Git가 v2.23 이전에 사용 된 대신 git checkout -
최근댓글