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


6838

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


86
이 대화식 git cheat sheet ndpsoftware.com/git-cheatsheet.html 은 git workspace를 보여줍니다 (Google은 "working copy"보다 "workspace"에 대한 더 나은 결과를 제공합니다).
qneill

28
참고 : 만 제거 할 경우 몇 가지 있지만, 비 추적 파일을 모든 그들 , git clean지금이 대화 형 모드를! 이 다른 질문에 대한 내 답변 보기 : git 1.8.4+
VonC

17
분기는 커밋에 대한 참조이므로 추적되지 않은 파일을 포함하지 않으므로 git 분기에서 파일을 제거하지는 않습니다. 그것들은 작업 디렉토리에만 존재하며 브랜치와 관련이 없습니다. 아마 용어 설명 일뿐입니다.
Pavel Šimerda

6
시작되지 않은 것과 Git을 처음 접하는 사람들에 대한 이해를 명확히하기 위해 git 상태를 실행하고 파일이 추적되지 않은 것으로 표시되고 해당 파일을 저장소에 원하지 않는 경우 파일 시스템으로 이동하여 삭제하거나 이동할 수 있습니다 . 이것은 로컬 리포지토리 또는 Git에 나쁜 영향을 미치지 않습니다. git clean선택적 파일 만 삭제하는 대화식 버전을 포함하여 아래 답변의 변형을 사용 하거나 변형 할 수도 있지만 대화식 모드는 지루할 수 있습니다. 무엇을 하든지 무엇 git clean을 삭제 --dry-run하지 않고 삭제 하거나 사용할 수있는 내용을 이해해야합니다 .
LightCC

4
파일이 아직 추적되지 않으면 git없이 파일을 제거 할 수 없습니까? rm files-to-be-deleted
mhatch

답변:


8731

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그러한 디렉토리를 정말로 제거 하려면 옵션을 두 번 사용하십시오 .


287
git clean -f디렉토리 (및 서브 디렉토리)에서만 작동합니다. 전체 작업 사본을 정리하려면 루트 디렉토리에서 호출해야합니다.
Eduardo Bezerra

17
또한 .gitignore 내의 모든 파일을 제거합니다.
gitgitore에

24
@Kostanos .gitignore에있는 파일을 제거하지 않으려면 -x 플래그를 제공하지 마십시오.
Lo-Tan

51
git clean -f :/루트 repo 디렉토리에서 실행 한 것처럼 작동합니다. 나중에 또 함께 서브 모듈에 대한 회계과 답변을 참조git clean -ffxd :/
여기

18
@Michelle도 모든 파일이 제거됩니다 깨끗한 -xfd 현재 무시한 이눔에 .gitignore 그리고 그들은 복구 할 수 없습니다
thedanotto

986

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

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

    git clean -n
    

    또는

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

    git clean -fd
    

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


115
앞서 언급 한 바와 같이, git clean -n -d
드라

15
같은 일이하는 것입니다 git clean -ndgit clean -fd.
Micer

477

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

git clean -i

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

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

git iclean

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


16
@ pal4life 1.8.4에 추가되었습니다. git의 이전 버전을 실행하고 있습니까? github.com/git/git/blob/master/Documentation/RelNotes/1.8.4.txt
Mattias Backman

나는 이것을 좋아한다-우연히 ctrl-r 또는 ctrl-p를 사용하면 크게 중요하지 않기 때문에 다른 옵션보다 bash 기록에 더 편안합니다.
csvoss


250

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

git clean -d -f -f


4
BTW, 이것은 문서 로 작성되었습니다 : Git은 두 번째 -f를 지정하지 않으면 .git 하위 디렉토리 또는 파일이있는 디렉토리 삭제를 거부합니다. 그러나 어쨌든 감사합니다!
맥심 Suslov

248

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

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

git add --all
git reset --hard HEAD


8
당신은 대체 할 수 있습니다 git add --allgit add .. 따라서 한 줄로 더 짧은 방법으로 할 수 있습니다 git add . && git reset --hard HEAD ( 이 명령에 매우 주의하십시오) .
RousseauAlexandre

22
왜 이것을 사용 git clean합니까?
user2864740 2016 년

8
git clean무시되는 모든 것을 분명히 삭제 하기 때문입니다. 내 node_modules폴더를 삭제했습니다 . 이렇게하면 먼저 무시 된 파일을 제외한 모든 파일을 준비한 다음 재설정을 수행하여 삭제합니다. 무시 된 파일은 건드리지 않습니다.
Andreas

5
@Andreas는 무시 된 파일을 삭제하지 않습니다 (git 2.14.1). 실제 삭제 (또는 사용 ) 를 수행하기 전에 어쨌든 실행해야합니다git clean -ngit clean -i .
Qw3ry

8
git clean-x또는 -X옵션 을 사용하는 경우에만 무시 된 파일을 삭제하고 , 그렇지 않으면 추적되지 않은 파일 만 삭제합니다.
doubleDown

140

내가 좋아하는 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에게 감사드립니다.


3
숨김에 -u를 설명 할 수 있습니까? git stash save와 다르게 작동하는 방식을 따르지 않습니다. 나는 이것을 시도했고 효과가 있었다. 자식 문서를 보았고 찾을 수 없었습니다.
Winnemucca

9
-u와 같습니다 --include-untracked. 에 대한 도움말을 찾을 수 있습니다 git help stash.
hiroshi

3
@hiroshi 감사합니다! 십여 명의 다른 사람들로부터 모든 대담한 솔루션을 시도한 후에 이것은 마침내 작동했습니다 ... 허! git stash조차도 nada를했습니다. 세이브-u는 추적되지 않은 것을 처리했습니다. 하드 / 클린 포스 / 등을 재설정하십시오.
killjoy

3
save옵션은을 선호 push하지만 더 이상 사용되지 않습니다 . 자세한 내용은 /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952
Script Wolf

120

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

git clean -fdx

매우 큰 프로젝트의 경우 두 번 실행하려고 할 수 있습니다.


@Martin 제가 작업하고있는 프로젝트 중 하나는 +8 세이며 적극적으로 코딩하는 +80 명의 개발자가 있습니다. Git은 때때로 첫 번째 패스에서이를 청소하지 못합니다.
Oscar Fraxedas

1
이를 확인할 수 있으므로 2020 년에도 유효합니다. 우리는 또한 큰 프로젝트를 진행 중이며 GIT가 삭제할 파일을 더 이상 찾을 수 없을 때까지 4-5 번 실행해야했습니다.
turbolocust

90

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


86

특정 하위 디렉토리에서 추적되지 않은 파일을 제거해야하는 경우

git clean -f {dir_path}

추적되지 않은 디렉토리 / 파일과 무시 된 파일을 삭제하는 결합 된 방법.

git clean -fxd {dir_path}

이 후에는에서 파일 만 수정합니다 git status.


68

이 repo + 하위 모듈에서 추가 폴더와 파일을 모두 제거하십시오.

그러면 새로운 클론과 동일한 상태가됩니다.

git clean -ffdx

이 저장소의 하위 폴더가 아닌 추가 폴더와 파일을 모두 제거하십시오.

git clean -fdx

추가 폴더는 제거하지만 파일은 제거하지 마십시오 (예 : 빌드 또는 로그 폴더)

git clean -fd

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

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

git clean -fdX

새로운 대화식 모드

git clean

57

git clean -fd 디렉토리를 제거

git clean -fX 무시 된 파일을 제거합니다

git clean -fx 무시되고 무시되지 않은 파일을 제거합니다

위의 모든 옵션을 다음과 같이 조합하여 사용할 수 있습니다.

git clean -fdXx

도움이 더 필요하면 자식 매뉴얼을 확인하십시오.


10
이 명령 git clean -fdXx"fatal : -x와 -X를 함께 사용할 수 없습니다" 라는 오류 메시지를 표시합니다 (git-2.8 사용). 답안의 마지막 문장은 git manual 링크를 제공하십시오. 건배
올리버

git clean -fdX, git clean -fdx
Clock ZHONG

55

OK, 삭제 원하지 않는 비 추적 파일과 폴더를 쉽게 사용하는 git명령 줄에서, 단지 이런 식으로 작업을 수행합니다

git clean -fd

기록을 만들지 않고 파일과 폴더를 삭제하므로 다시 확인하십시오 ...

이 경우에도 -f힘을 나타내며-d 나타내며 디렉토리를 나타냅니다 ...

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

git clean -f

(디렉토리) 및 파일 을 삭제 하려는 경우 다음 과 같이 추적되지 않은 디렉토리 및 파일 만 삭제할 수 있습니다.

git clean -fd

또한 -xgit에서 무시되는 파일을 포함시키기 위해 플래그를 사용할 수 있습니다 . 모든 것을 삭제하려는 경우 유용합니다.

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

확실하지 않은 사항을 먼저 확인하려면 -n플래그를 추가하십시오 .

-q삭제 후 보고서를 보지 않으려면 사용하십시오 .

또한 아래 이미지를 더 기억에 남게 만들기 위해 만들었습니다. 특히 많은 사람들이 -f폴더 정리를 혼동 하거나 어쨌든 섞는 것을 보았습니다 !


원하지 않는 추적되지 않은 파일 및 폴더 삭제


그 이미지는 무엇입니까?
Pacerier

37

더 좋은 방법은 git clean을 사용하는 것입니다.

git clean -d -x -f

이로 인해 (-d)무시 된 디렉토리 및 파일을 포함하여 추적되지 않은 파일이 제거 됩니다 git (-x).

또한, 또는 대화식 모드 를 수행하기 위해 -f인수 -n를 바꾸면 제거 될 항목을 알려줍니다.dry-run-i


25

사용자 대화식 접근 방식 :

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추가하십시오 .


20

방금 발명하고 시도한 그러한 상황에 대한 구명

git add .
git reset --hard HEAD

조심해! 이 작업을 수행하기 전에 필요한 변경 사항 (트래킹되지 않은 파일에서도) 을 커밋 하십시오 .


3
적어도 이것은 다른 접근법입니다. :) reflog에서 삭제 된 파일은 기억하지만 다른 지점에서는 기억하지 않는 다른 방법은 다음과 같습니다.git add . git commit -m 'about to delete' git reset --hard HEAD~
joeytwiddle

2
더 빠른 방법은git add . && git reset --hard HEAD
thybzi

3
git add . && git reset --hard
Pleymor

커밋하려는 변경 사항이 있으면 원하는 것이 아닐 수도 있습니다.
lacostenycoder

@AlexanderMills는 git reset --hard커밋되지 않은 모든 변경 사항을 BUT UNTRACKED FILES를 최신 커밋 상태로 재설정합니다. 그렇기 때문에 우리는 먼저 git add .추적이 필요 없는 모든 파일을 준비합니다 (따라서 재설정)
thybzi

19

git clean -f -d -x $(git rev-parse --show-cdup)저장소 디렉토리 트리 내에서 호출 한 위치에 상관없이 루트 디렉토리에 클린을 적용합니다. 나는 그것이 당신이 지금 일하고있는 폴더를 떠나도록 강요하지 않기 때문에 항상 사용하고 당신이있는 곳에서 바로 정리하고 커밋 할 수 있습니다.

플래그가 있는지 확인하십시오 -f, -d, -x사용자의 요구에 맞게 :

-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.

-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.

-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

사용 가능한 다른 플래그도 있습니다 git clean --help.


BTW 당신은 ​​단지 git clean {flags} : /를 할 수있다. 그래서 그것은 당신이 repo root에서 명령을 실행 한 것처럼 될 것이다
The-null-Pointer-

19

나를 위해 다음과 같이 일했습니다.

git clean -ffdx

다른 모든 경우에는 일부 하위 디렉토리에 대해 "Skipping Directory" 메시지가 표시되었습니다 .


2
감사. 나는 .gitignore에서 파일을 지우는 것을 피하기 위해 -x방금 사용 git clean -ffd했습니다.
Feckmore

15

'git status'에 의해 추적되지 않은 것으로 나열된 파일을 삭제하려는 경우

git stash save -u
git stash drop "stash@{0}"

'git clean'은 git에서 무시되는 파일을 삭제하므로 다음 빌드에서는 모든 것을 다시 빌드해야하므로 IDE 설정도 손실 될 수 있기 때문에 이것을 'git clean'보다 선호합니다.


3
추적 된 파일에 대한 유효한 변경 사항도 제거됩니다. 나는 그것을 추천하지 않을 것입니다.
code_dredd

2
예, 먼저 추적 된 파일에 대한 변경 사항을 커밋하려고합니다.
jazzdev

14

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

git clean -d -n

다음과 같이 출력됩니다.

sample.txt를 제거합니다

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

git clean -d -f

다음과 같이 출력됩니다.

sample.txt 제거


11

추적되지 않은 파일을 제거하려면 먼저 명령을 사용하여 치료에 의해 영향을받을 파일을 확인해야합니다

git clean -fdn

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

git clean -fd

11

`git clean` 명령을 실행할 때주의하십시오.

-n실제 명령을 실행하기 전에 항상 어떤 파일이 제거되는지 표시되므로 사용하십시오.

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

기본적으로 git clean무시되지 않은 추적되지 않은 파일 만 제거합니다. gitgitore 또는 다른 무시 파일의 패턴과 일치하는 파일은 제거되지 않습니다. 해당 파일도 제거 -x하려면 clean 명령에를 추가 할 수 있습니다 .

git clean -f -d -x

-iclean 명령으로 대화식 모드를 사용할 수도 있습니다

git clean -x -i

대안 적으로

커밋되지 않은 작업을 안전하게 삭제하는 것이 100 % 확실하지 않은 경우 대신 숨김을 사용할 수 있습니다

git stash --all

또한 디렉토리를 지우지 만 stash with apply 또는 pop을 사용하여 언제든지 파일을 검색 할 수있는 유연성을 제공합니다 . 그런 다음 나중에 다음을 사용하여 숨김을 지울 수 있습니다.

git stash drop // or clean

2
은닉은 좋은 생각이지만, 사용하고 싶을 수도 있습니다git stash save and type some comment as to what this stash was for
lacostenycoder


9

git docs에서 추적되지 않은 파일제거 하기위한 uggested 명령 은 git clean입니다.

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

권장 방법 : 인터랙티브 모드를 사용하여git clean -i 제어 할 수 있습니다. 사용 가능한 나머지 옵션을 보자.

사용 가능한 옵션 :

git clean 
    -d -f -i -n -q -e -x -X (can use either)

설명:

1. -d

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

2. -f, --force

Git 구성 변수 clean.requireForce가 false로 설정되지 않은 경우, -f, -n 또는 -i를 지정하지 않으면 git clean은 실행을 거부합니다.

3. -i,-대화식

수행 할 작업을 표시하고 파일을 대화식으로 정리하십시오. 자세한 내용은 "대화식 모드"를 참조하십시오.

4. -n,-건조

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

5. -q, --quiet

조용히하고 오류 만보고하지만 성공적으로 제거 된 파일은보고하지 마십시오.

6. -e, --exclude =

.gitignore (디렉토리 당) 및 $ GIT_DIR / info / exclude에있는 것 외에도 이러한 패턴이 무시 규칙 세트에있는 것으로 간주하십시오.

7. -x

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

8. -X

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


나는 당신이 오타가 있다고 생각 uggested하지만 그것은 단지 " uggestionlol
lacostenycoder

8

일반 git clean명령은 my로 추적되지 않은 파일을 제거하지 않습니다 git version 2.9.0.windows.1.

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

7

아래의 자식 주석을 사용하여 현재 자식 작업 트리에서 추적되지 않은 로컬 파일을 쉽게 제거 할 수 있습니다.

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

또한 추적되지 않은 파일뿐만 아니라 커밋을 위해 준비된 변경 사항도 제거합니다.
raspy

작동하지 않습니다 : 일부 파일을 남겨 둡니다. git clean -ffdx솔루션입니다
Eugene Gr. Philippov

7

자식 저장소와 모든 하위 모듈을 재귀 적으로 정리하십시오

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

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

확실히 이것은주의해서 사용해야합니다
lacostenycoder

6
git clean -f

현재 자식에서 추적되지 않은 파일을 제거합니다

git clean -fd

디렉토리와 파일을 제거하려면 추적되지 않은 디렉토리와 파일 만 삭제합니다


5

오 - 내 - zsh을 가진 zsh을이 망할 놈의 플러그인을 통해 그 멋진 별칭을 제공합니다. bash에서도 사용할 수 있습니다.

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

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

2
의견을 보내 주셔서 감사합니다. 제 진술은 혼란 스러웠습니다. 강조 표시된 별칭이 oh-my-zsh와 함께 자동으로 제공된다고 말하고 싶습니다. 그들은 분명히 훌륭하게 작동 bash합니다. 나는 그것을 반영하기 위해 대답을 편집했다.
ZenLulz

4

나는 git stash명령 을 사용 하고 나중에 숨김 파일과 변경 사항을 얻을 수 있습니다. git clean또한 좋은 옵션이지만 전적으로 귀하의 요구 사항에 달려 있습니다. 다음은 git stash 및 git clean에 대한 설명입니다. 7.3 Git Tools-Stashing and Cleaning

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.