현재 Git 작업 트리에서 로컬 (추적되지 않은) 파일을 제거하는 방법 않은 로컬

현재 작업 트리에서 추적되지 않은 로컬 파일을 어떻게 삭제합니까?



답변

git- clean-작업 트리에서 추적되지 않은 파일 제거

개요

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

기술

현재 디렉토리에서 시작 하여 버전 제어를받지 않는 파일을 재귀 적으로 제거하여 작업 트리를 정리합니다 .

일반적으로 Git에 알려지지 않은 파일 만 제거되지만 -x옵션을 지정하면 무시 된 파일도 제거됩니다. 예를 들어 모든 빌드 제품을 제거하는 데 유용 할 수 있습니다.

선택적 <path>...인수가 제공되면 해당 경로 만 영향을받습니다.


1 단계는 다음 -n옵션 을 사용하여 삭제할 내용을 표시하는 것입니다 .

# Print out the list of files which will be removed (dry run)
git clean -n

클린 단계- 주의 : 파일을 삭제합니다 :

# Delete the files from the repository
git clean -f
  • 디렉토리를 제거하려면 git clean -f -d또는git clean -fd
  • 무시 된 파일을 제거하려면 git clean -f -X또는git clean -fX
  • 무시되고 무시되지 않은 파일을 제거하려면 git clean -f -x또는git clean -fx

X후자의 두 명령에 대한 대소 문자 차이에 유의 하십시오 .

경우 clean.requireForce구성에서 “true”(기본값)로 설정 한 요구를 지정하지 않으려면 -f실제로 일어날 것입니다 그렇지 않으면 아무것도.

git-clean자세한 내용 은 문서를 다시 참조하십시오 .


옵션

-f, --force

망할 놈의 구성 변수 clean.requireForce가 false로 설정되어 있지 않은 경우, 자식 깨끗한 주어진하지 않는 한 실행을 거부 할 것이다 -f, -n또는 -i.

-x

.gitignore (디렉토리 당) 및에서 읽은 표준 무시 규칙을 사용하지 말고 옵션 $GIT_DIR/info/exclude과 함께 제공된 무시 규칙을 계속 사용하십시오 -e. 이를 통해 빌드 제품을 포함하여 추적되지 않은 모든 파일을 제거 할 수 있습니다. 이것은 git reset과 함께 사용되어 깨끗한 빌드를 테스트하기위한 깨끗한 작업 디렉토리를 만들 수 있습니다.

-X

Git에서 무시한 파일 만 제거하십시오. 처음부터 모든 것을 다시 작성하는 데 유용하지만 수동으로 만든 파일은 유지하십시오.

-n, --dry-run

실제로 아무것도 제거하지 말고 수행 할 작업 만 표시하십시오.

-d

추적되지 않은 파일 외에 추적되지 않은 디렉토리를 제거하십시오. 추적되지 않은 디렉토리가 다른 Git 저장소에 의해 관리되는 경우 기본적으로 제거되지 않습니다. -f그러한 디렉토리를 정말로 제거 하려면 옵션을 두 번 사용하십시오 .


답변

사용 git clean -f -d있는지 확인 디렉토리가 도 제거됩니다.

  1. 실제로 아무것도 제거하지 말고 수행 할 작업 만 표시하십시오.

    git clean -n
    

    또는

    git clean --dry-run
    
  2. 추적되지 않은 파일 외에 추적되지 않은 디렉토리를 제거하십시오. 추적되지 않은 디렉토리가 다른 Git 저장소에 의해 관리되는 경우 기본적으로 제거되지 않습니다. -f그러한 디렉토리를 정말로 제거 하려면이 옵션을 두 번 사용하십시오 .

    git clean -fd
    

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


답변

아무도 전에 이것을 언급하지 않은 것에 놀랐습니다.

git clean -i

이는 대화식을 나타내며 영향을받는 파일을 포함 / 제외 할 수있는 가능성을 제공하여 삭제 될 대상에 대한 빠른 개요를 제공합니다. --dry-run실제 청소 전에 강제 실행보다 훨씬 빠릅니다 .

-d빈 폴더를 관리하려면 을 (를) 던져야 합니다. 결국, 그것은 좋은 별칭을 만듭니다 :

git iclean

즉, 대화식 명령을 추가로 손에 들고 있으면 숙련 된 사용자가 지칠 수 있습니다. 요즘 나는 이미 언급 한 것을 사용합니다.git clean -fd


답변


답변

추적되지 않은 디렉토리가 자체의 git 저장소 (예 : 하위 모듈) 인 경우 -f두 번 사용해야합니다 .

git clean -d -f -f


답변

추적되지 않은 파일을 제거하는 간단한 방법

모든 비 추적 파일을 제거하려면 간단한 방법입니다 첫번째 그들 모두를 추가 하고 REPO 다시 아래로를

git add --all
git reset --hard HEAD


답변

내가 좋아하는 git stash push -u당신이 그들 모두를 취소 할 수 있기 때문에 git stash pop.

편집 : 또한 내가 (예 : 마리화나에 비 추적 파일을 표시하는 방법을 발견 git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

EDIT2 : git stash save은 더 이상 사용되지 않습니다 push. @ script-wolf에게 감사드립니다.