2012-06-13 3 views
4

추적 할 수없는 파일이 있는지 신속하게 감지 할 수있는 방법이 있습니까?추적 할 수없는 파일이있는 경우 git가 감지합니다.

I list all of the untracked files

git ls-files --other --directory --exclude-standard 

그러나 많은 비 추적 파일이있는 경우이 속도가 느린

때와 수 있습니다. git diff -q과 같은 것이 있습니까? 여기서 종료 상태는 추적 할 수없는 파일의 존재 여부를 결정합니다.

답변

14

는 바로 다음 종료합니다.

당신이 GNU/아무것도 경우 그렇지 않으면 어떤

이있는 경우 RC1을 설정합니다

git ls-files --other --directory --exclude-standard | sed q1 

,

anyuntracked() { 
    return `git ls-files -o -d --exclude-standard | sed q | wc -l` 
} 
anyuntracked 

+0

'git status'와 함께 더 많은 결과를 얻으려면'--no-empty-directory'를 추가하십시오. – pjvandehaar

+0

나는 이것이 전혀 작동하지 않는다고 생각합니다. 이 명령을 벤치마킹하면 sed가있는 것과없는 것과 정확히 같은 속도입니다. git이 출력을 모두 사용할 수있을 때까지 플러시하지 않는 것으로 판단됩니다. – user3467349

+0

@ user3467349 버퍼를 채우는 데 필요한 몇 십 개의 파일 이름이 많은 사람들을 괴롭히는 데 충분한 시간을 추가한다고 생각하지 않는다고 그는 "많은"이라고 말했지만 여러 디렉토리에 걸쳐 추적되지 않은 파일을 분산 시키거나, ls-files stdout에서 라인 버퍼링을 강제 실행하는'stdbuf' 명령이 항상 있습니다. – jthill

1

git status은 추적되지 않은 파일을 알려줍니다.

예 출력 : 당신이 첫 번째 비 추적 파일을 본 적이 때 당신이 원하는 경우

[email protected] ~/code/Sick-Beard (master) $ git status 
# On branch master 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# init.osx 
nothing added to commit but untracked files present (use "git add" to track) 
+1

내가 '생각 같은 일을 할 것입니다 git ls-files'는 여전히'git status'보다 빠릅니다. – k107

+1

네, 맞습니다. 나는 100000 개의 새 파일로 구성된 테스트 세트에서 두 명령을 모두 시간 측정했다. ''git status'는'real : 0m0.927s'이었고'ls-files'는'real : 0m0.468s' 만 받았습니다. (답은별로 없지만 알기에는 좋은) –

관련 문제