2011-03-24 3 views

답변

3

나는 "[그들은] (귀하의 질문 제목에있는) 저장소의 일부입니다"라는 말은 건너 뛸 하위 디렉토리에 실제로 추적 된 파일이 포함되어 있고 git status의 상태 확인을 피하기를 원한다고 가정합니다 추적 된 파일들.

기본적으로 git status은 추적 된 모든 경로를 검사합니다. 미리 설정된 경로 목록을 건너 뛰는 옵션은 없지만 확인해야하는 경로를 지정하는 데 사용할 수있는 인수는 pathspec입니다 (암시 적으로 다른 경로는 건너 뜁니다).

사용 가능한 기능을 직접 사용하려면 문제를 해결해야합니다. 특정 파일과 디렉터리의 상태 만 표시하려면 어떻게합니까?

대답은 명령 줄에 나열하는 것입니다. 당신은 가능성이 쉘 스크립트를 사용하는 것이 좋습니다 그래서 때마다, 성가신 것

git status src doc Makefile 

타이핑 및/또는 예를 들어, 우리는 약 src, doc (모두 아마를 디렉토리) 및 Makefile 알고 싶다면 젠장 별칭.

그러나 "이것은 X, Y, Z를 제외한 모든 것"과 같이 말할 필요없이 원하는 경로 집합을 정의 할 수있는 경우에만 효과가 있습니다. 힘내는 "모든 것을 제외하고 ..."(아직)에 대한 지원을 포함하지 않으므로 목록을 확장하고 git status으로 지정하기 위해 다른 것을 의지해야합니다. 일부 쉘에는 도움이되는 기능이 있습니다.

예 : .V, .W과 일치하지 않는 한 현재 디렉토리 ("도트"파일/디렉토리 포함)의 모든 항목을 처리합니다.점으로 시작하는 패턴), X, 또는 Y : 당신은 (D) 또한이 경우 생략 할 수 있습니다 활성화 EXTENDED_GLOB 옵션 (setopt EXTENDED_GLOB)와

  • zsh을,

    git status ^(.V|.W|X|Y)(D) 
    

    GLOB_DOTS을 사용하도록 설정했습니다. 활성화

  • dotglobextglob와 떠들썩한 파티 옵션 (shopt -s extglob dotglob)

    git status !(.V|.W|X|Y) 
    
  • KSH ("도트"이름 패턴 인해 을 에뮬레이션하기 위해 약간 이상한 GLOB_DOTS) :

    git status .!(|.|V|W) !(X|Y) 
    

다시 말하지만, 직접 입력하는 대신 스크립트 (또는 힘내 이명)로 마무리하는 것이 좋습니다.


1 은 "부정적인"pathspecs에 대한 지원을 추가하는 방법에 대한 메일 링 망할 놈에 대한 논의가 있었다 ("모든 것을 제외하고 ...")는 쉘의 도움없이이 작업을 수행하지만,이 할 수있는 확고한 디자인이나 공개 된 코드는 아직 없습니다.

3

어쩌면 이것은 기본적으로 같은 같은 .gitignore이다 제외/.git/정보에 넣어,하지만 당신은 저장소 내용을 만지지 마십시오. 당신이 자식의 repo를 보유하고있는 디렉토리에서

+1

gitignore에 넣는 것보다 훨씬 합리적인데, 그 이유는 디렉토리에 추적 된 내용이 포함되어있는 것처럼 들리기 때문입니다. 해당 디렉토리에 항목을 추가하기로 결정한 경우 문제가 발생할 수 있습니다. ('add -f'를 사용하거나 제외 파일에서 제거해야합니다.) – Cascabel

+0

'-f'에 대한 좋은 지적 –

+0

이것은 모든것에 대해 여전히 stat를하고 시도한 사람에 따라 git status를 빠르게하지는 않습니다 그것. – nosatalian

0

/편집에게 .gitignore 파일을 만들고 다음을 추가

dir1/ 
dir2/ 

어떤 DIR1 및 DIR2을 무시합니다.

관련 문제