git reset --hard HEAD는 추적되지 않은 파일을 남깁니다.
뛰면요git reset --hard HEAD
원래대로 되돌리기로 되어 있어요 제가 알기론요안타깝게도 파일이 방치되어 있습니다.git status
에는 추적되지 않은 파일의 큰 목록이 표시됩니다.
어떻게 git에 "마지막 당김에 정확히 있던 대로 돌려주세요, 그 이상도 이하도 아닙니다"라고 말할 수 있을까요?
사용하셔야 합니다.git clean -f -d
작업 복사본에서 추적되지 않은 파일 및 디렉토리를 제거합니다.추가할 수 있습니다.-x
또한 무시된 파일을 제거하려면 이 훌륭한 SO 답변을 참조하십시오.
하위 모듈이 있는 전체 리포지토리를 마스터의 상태로 재설정해야 하는 경우 다음 스크립트를 실행합니다.
git fetch origin master
git checkout --force -B master origin/master
git reset --hard
git clean -fdx
git submodule update --init --recursive --force
git submodule foreach git fetch
git submodule foreach git checkout --force -B master origin/master
git submodule foreach git reset --hard
git submodule foreach git clean -fdx
git reset --hard && git clean -df
또는 zsh는 '그프리스틴' 별칭을 제공합니다.
alias gpristine='git reset --hard && git clean -df'
정말 편리하네요.
선택 사항:
여기도 있습니다.-x
에 대한 옵션입니다.git clean
명령합니다.그러면 'git ignored' 파일도 삭제되므로 원하는 경우 이 옵션도 추가하십시오.
분기된 repo에서 작업할 경우 다음과 같이 올바른 repo/branch에서 가져오고 재설정해야 합니다.
git fetch upstream && git reset --hard upstream/master && git clean -df
계속 보관할 파일이 있는 경우 다음을 수행합니다.
git clean -di
는 더 이상 원하지 않는 파일/파일만 삭제할 수 있는 대화형 정리를 수행합니다.
사용할 수 있습니다.git stash
. 지정해야 합니다.--include-untracked
그렇지 않으면 원래 문제가 발생합니다.
git stash --include-untracked
그럼 마지막 엔트리는 그냥 저장고에 넣어두세요.
git stash drop
당신은 그것에 대해 핸디 댄디 가명을 만들 수 있습니다, 그리고 그것을 부를 수 있습니다.git discard
예를 들어 다음과 같습니다.
git config --global alias.discard "! git stash -q --include-untracked && git stash drop -q"
사용자 대화형 접근 방식:
git clean -i -fd
Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y
-i는 대화형입니다.
-f는 힘입니다.
-d(디렉토리)입니다.
-x는 무시된 파일의 경우입니다(필요한 경우 추가).
참고:-n 또는 --dry-run을 추가하여 동작을 확인합니다.
git-clean
작업 트리에서 추적되지 않은 파일을 제거하는 데 사용합니다.다음은 에 사용할 수 있는 몇 가지 옵션(간단히)입니다.git clean
명령합니다.
-d
경로를 지정하지 않을 때 사용합니다.그래서 추적되지 않은 디렉토리로 다시 돌아가 그것들을 제거합니다.
-f/--force
중첩된 추적되지 않은 파일을 제거합니다.
-i/--interactive
수행할 작업을 보여주고 대화식으로 파일을 정리합니다.
-n/--dry-run
아무것도 제거하지 않고 어떤 일이 일어날지 보여줍니다.
-x
파일을 무시합니다.
예를 들어 다음과 같습니다.git clean -f -d
-> 현재 디렉토리에서 추적되지 않은 모든 하위 디렉토리를 제거합니다.
찾으시는 명령은 다음과 같습니다.git clean
이 유용한 별칭을 추가하여 모든 파일을 하드 재설정(추적 및 추적되지 않음)하고 이전 커밋 버전으로 되돌릴 수 있습니다.
git config --global alias.reset-hard '!f() { git reset --hard; git clean -df ; }; f'
그런 다음 다음과 같이 재설정할 수 있습니다.
git reset-hard
Windows에서도 비슷한 문제가 발생하여 PC를 다시 시작하고 관리자 권한으로 SourceTree/GitBash 등을 연 다음 인터페이스에서 파일을 제거해야 했습니다.그런 것 같아요git clean -f -d
GitBash 관리자입니다.
소프트 재설정을 수행했을 수 있습니다. 다음을 수행하여 이 문제를 해결할 수 있습니다.
git add .
git reset --hard HEAD~100
git pull
언급URL : https://stackoverflow.com/questions/4327708/git-reset-hard-head-leaves-untracked-files-behind 입니다.
'programing' 카테고리의 다른 글
Excel 한 열의 값이 다른 열의 값 범위에 있습니다. (0) | 2023.04.25 |
---|---|
WPF DataGrid 유효성 검사 오류가 지워지지 않습니다. (0) | 2023.04.25 |
VBA에서 두 가지 범위에서 범위를 생성하는 방법은 무엇입니까? (0) | 2023.04.25 |
SQL Server의 스키마 바인딩 보기에서 참조하는 열 크기 변경 (0) | 2023.04.20 |
Safari의 Swift Open 링크 (0) | 2023.04.20 |