특정 - 현재 Git 작업 트리에서 로컬(untracked) 파일을 제거하는 방법은 무엇입니까?




git 파일 업데이트 (20)

현재 작업중인 트리에서 untracked 로컬 파일을 어떻게 삭제합니까?


untracked 파일을 제거하는 간단한 방법

추적 할 수없는 파일을 모두 제거하려면 먼저 모든 파일을 추가 하고 아래처럼 repo재설정하십시오.

git add --all
git reset --hard HEAD

자식 저장소와 모든 하위 모듈을 반복적으로 정리합니다.

다음 명령은 현재 자식 저장소와 모든 하위 모듈을 재귀 적으로 정리합니다.

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

`git clean` 명령을 실행하는 동안 조심하십시오.

실제 명령을 실행하기 전에 항상 -n사용 하여 제거 할 파일을 표시합니다.

git clean -n -d 
git clean -f -d

기본적으로 git clean 은 무시되지 않은 untracked 파일 만 제거합니다. .gitignore 또는 다른 무시 파일의 패턴과 일치하는 파일은 제거되지 않습니다. 이러한 파일도 제거하려면 clean 명령에 -x 를 추가하십시오.

git clean -f -d -x

clean 명령과 함께 사용할 수있는 대화식 모드 -i 가 있습니다.

git clean -x -i

또는

커밋되지 않은 작업을 삭제하는 것이 안전하다고 100 % 확신하지 못하면 대신 stashing을 사용할 수 있습니다

git stash --all

또한 디렉토리를 지우지 만 적용 또는 숨김 으로 숨김 을 사용하여 언제든지 파일을 검색 할 수있는 유연성을 제공합니다. 다음 시점에서 당신은 은신처를 지울 수 있습니다 :

git stash drop // or clean

'git status'에 의해 untracked로 나열된 파일 만 삭제하려는 경우,

git stash save -u
git stash drop "[email protected]{0}"

'git clean'은 git에서 무시 된 파일을 지울 것이므로 다음 빌드는 모든 것을 다시 빌드해야하며 IDE 설정도 잃어 버릴 수 있기 때문에 'git clean'을 선호합니다.


나는 git stash push -u 좋아한다. 왜냐하면 git stash pop 그들을 모두 되돌릴 수 있기 때문이다.

편집 : 또한 숨겨진 파일을 보여줄 수있는 방법을 발견했다 (예 : git show [email protected]{0}^3 ) https://.com/a/12681856/338986

EDIT2 : git stash savepush 권장하지 않습니다. 감사합니다 @ script-wolf.


나를 위해서만 다음과 같은 일을 :

git clean -ffdx

다른 모든 경우에는 일부 하위 디렉토리에 대해 "Skipping Directory"라는 메시지가 나타납니다.


방금 발명하고 시도한 상황을위한 구명 조끼 (완벽하게 작동합니다) :

git add .
git reset --hard HEAD

조심해! 이 작업을 수행하기 전에 필요한 변경 ( 커밋 되지 않은 파일에서도) 을 수행해야 합니다.


실제로 삭제하기 전에 삭제 될 내용을 확인하려면 다음을 수행하십시오.

git clean -d -n

다음과 같이 출력됩니다 :

sample.txt를 제거하겠습니까

이전 명령의 출력에 나열된 모든 것을 삭제하려면 다음을 수행하십시오.

git clean -d -f

다음과 같이 출력됩니다 :

sample.txt 제거


우리는 아래의 git 주석을 사용하여 현재의 git working tree에서 쉽게 추적 할 수없는 로컬 파일을 제거 할 수 있습니다.

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

예:

git reset --hard HEAD

링크 :

  1. https://git-scm.com/docs/git-reset
  2. 이전 커밋으로 되돌리려면 'git reset -hard HEAD'를 어떻게 사용합니까?
  3. 원격 저장소 HEAD와 마찬가지로 로컬 저장소 분기 재설정
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

이것은 내가 항상 사용하는 것입니다 :

git clean -fdx

매우 큰 프로젝트의 경우 두 번 실행하는 것이 좋습니다.


추적 할 수없는 디렉토리가 자체 저장소 (예 : 하위 모듈) 인 경우 -f 두 번 사용해야합니다.

git clean -d -f -f


추적 할 수없는 파일을 제거하려면 먼저 명령을 사용하여 정리의 영향을받을 파일을 확인해야합니다

git clean -fdn

그러면 삭제할 파일 목록이 표시됩니다. 이제 실제로이 파일을 삭제하려면 다음 명령을 사용하십시오.

git clean -fd


git-clean 은 당신이 찾고있는 것입니다. 작업 트리에서 untracked 파일을 제거하는 데 사용됩니다.


git clean -f -d 를 사용하여 디렉토리 도 제거되었는지 확인하십시오.

그런 다음 파일이 git status 로 실제로 사라 졌는지 확인할 수 있습니다.


git clean -f to remove untracked files from working directory.

내 블로그에서 git-intro-basic-commands 몇 가지 기본 사항을 다뤘습니다.


사용자 상호 작용 방식 :

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/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

대화식으로 -i
강제로 -f
디렉토리에 대해 -d
무시 된 파일에 대해 -x (필요한 경우 추가)

참고 : -n 또는 --dry-run 을 추가하여 수행 할 작업을 확인하십시오.


OK, 불필요한 untracked 파일과 폴더를 삭제하는 것은 명령 행에서 git 을 사용하여 쉽게 할 수 있습니다. 다음과 같이하십시오 :

git clean -fd

기록을 작성하지 않고 파일 및 폴더를 삭제하므로 두 번 확인하십시오 .

이 경우에도 -f 는 force를 나타내고 -d 는 directory를 나타냅니다 ...

따라서 파일 만 삭제하려는 경우 -f 만 사용할 수 있습니다.

git clean -f

(디렉토리) 및 파일을 삭제하려면 다음과 같이 추적 할 수없는 디렉토리 및 파일 만 삭제할 수 있습니다.

git clean -fd

또한 git에서 무시되는 파일을 포함하기 위해 -x 플래그를 사용할 수 있습니다. 이것은 모든 것을 지우고 싶을 때 도움이 될 것입니다.

-i 플래그를 추가하면 git이 이동 중에 하나씩 파일을 삭제할 수있는 권한을 요청합니다.

-n 일을 먼저 확인하려면 -n 플래그를 추가하십시오.

성공적으로 삭제 한 후에 보고서를 보지 않으려면 -q 사용하십시오.

나는 또한 아래 이미지를 만들어서 더 기억하기 쉽도록 만들었고 특별히 많은 사람들이 때때로 폴더를 청소하거나 어떻게 든 섞어 혼란스럽게 보았다.



zshoh-my-zsh 는 git plugin을 통해 훌륭한 별칭을 제공합니다. 그들은 bash에서도 사용할 수 있습니다.

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean 은 추적되지 않은 파일 외에도 추적되지 않은 디렉토리를 제거합니다 .
  • gpristine 은 로컬 변경을 하드 리셋하고, 추적 할 수없는 디렉토리를 제거하고, 추적 할 수없는 파일을 제거 하고 .gitignore (디렉토리 당) 및 $ GIT_DIR / info / exclude에서 읽은 표준 무시 규칙을 사용하지 않지만 -e 옵션과 함께 주어진 무시 규칙을 계속 사용합니다 . 이를 통해 빌드 제품을 포함하여 추적되지 않은 모든 파일을 제거 할 수 있습니다. 이것은 깨끗한 빌드를 테스트하기위한 깨끗한 작업 디렉토리를 만들기 위해 (아마도 git reset과 함께) 사용될 수 있습니다 .

이 repo + submodules에서 모든 추가 폴더 및 파일을 제거하십시오.

이것은 신선한 복제품과 동일한 상태에서 당신을 얻습니다.

git clean -ffdx

이 저장소에있는 모든 추가 폴더 및 파일은 제거하지만 하위 모듈은 삭제하지 마십시오.

git clean -fdx

파일이 아닌 추가 폴더 만 제거 (예 : 빌드 폴더)

git clean -fd

추가 폴더 + 무시 된 파일 제거 (새로 추가 된 파일 제외)

파일이 무시되지 않았고 아직 체크인되지 않은 경우 파일은 그대로 유지됩니다. 대문자 X에 유의하십시오.

git clean -fdX

새로운 양방향 모드

git clean




git-branch