많은 하위 디렉토리가있는 저장소가 있습니다. 나는 그들 중 일부에 변화를주지 않을 것이라는 사실을 안다. 'git status'와이 디렉토리들에 신경 쓰지 않기 위해 전체 파일 시스템을 검사하는 다른 작업들을 알려주는 방법이 있습니까?git 상태와 같은 작업에 대한 하위 디렉토리 (저장소의 일부)를 무시하도록 git에 지시하는 방법
답변
나는 "[그들은] (귀하의 질문 제목에있는) 저장소의 일부입니다"라는 말은 건너 뛸 하위 디렉토리에 실제로 추적 된 파일이 포함되어 있고 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을 사용하도록 설정했습니다. 활성화
dotglob 및 extglob와 떠들썩한 파티 옵션 (
shopt -s extglob dotglob
)git status !(.V|.W|X|Y)
KSH ("도트"이름 패턴 인해 을 에뮬레이션하기 위해 약간 이상한 GLOB_DOTS) :
git status .!(|.|V|W) !(X|Y)
다시 말하지만, 직접 입력하는 대신 스크립트 (또는 힘내 이명)로 마무리하는 것이 좋습니다.
1 은 "부정적인"pathspecs에 대한 지원을 추가하는 방법에 대한 메일 링 망할 놈에 대한 논의가 있었다 ("모든 것을 제외하고 ...")는 쉘의 도움없이이 작업을 수행하지만,이 할 수있는 확고한 디자인이나 공개 된 코드는 아직 없습니다.
어쩌면 이것은 기본적으로 같은 같은 .gitignore이다 제외/.git/정보에 넣어,하지만 당신은 저장소 내용을 만지지 마십시오. 당신이 자식의 repo를 보유하고있는 디렉토리에서
- 1. git 저장소의 일부를 추출 하시겠습니까?
- 2. Java 컴파일 - 컴파일러에게 내 코드의 일부를 무시하도록 지시하는 방법이 있습니까?
- 3. 사용자 지정 범주를 무시하도록 UINavigationBar에 지시하는 방법?
- 4. 어떻게 파일의 변경 사항을 영구적으로 무시하도록 git에 알려주십니까?
- 5. subversion 저장소의 일부를 동기화하십시오.
- 6. 하위 디렉토리를 제외한 Git 저장소의 복제본
- 7. git 하위 모듈을 저장소의 루트에 추가 하시겠습니까?
- 8. git 저장소의 하위 집합 만 공유하십시오.
- 9. Gemfile에서 Git 저장소의 하위 디렉토리에있는 .gemspec을 지정하는 방법
- 10. 하위 작업에 대한 폴더 목록을 지정하는 방법
- 11. 별도의 git 저장소에 하위 디렉토리 디커트 -
- 12. 수은 하위 저장소는 기본 저장소의 하위 디렉토리 여야합니까?
- 13. 레코드를 업데이트 할 때 특정 필드를 무시하도록 DataContext에 지시하는 방법?
- 14. 에 rsync .git 디렉토리
- 15. Git 저장소의 위치를 변경하려면 어떻게해야합니까?
- 16. SVN 저장소의 일부를 복제하는 방법은 무엇입니까?
- 17. git 저장소의 히스토리 축소
- 18. SVN 저장소의 "Phantom"디렉토리
- 19. Git 저장소의 소스를 SVN 저장소의 소스와 비교하는 방법
- 20. 저장소의 하위 디렉토리를 내보낼 때 export-subst git 속성 사용하기
- 21. git submodule, 잘못된 디렉토리 무시하기
- 22. git-svn을 SVN 저장소의 중간 검토 도구로 사용하는 방법?
- 23. 배치 파일에서 디렉토리 경로의 일부를 얻는 방법
- 24. git에 대한 액세스 로그
- 25. Git에 대한 대안?
- 26. CVS/Git에 대한 MMIX 저장소 얻기
- 27. git 저장소의 필터링 된 버전
- 28. 종속성이있는 SVN 저장소의 일부를 내보내려면 어떻게해야합니까?
- 29. 여러 개의 하위 도메인 - 같은 루트 디렉토리
- 30. git 저장소의 상위 상위 저장소를 어떻게 결정합니까?
gitignore에 넣는 것보다 훨씬 합리적인데, 그 이유는 디렉토리에 추적 된 내용이 포함되어있는 것처럼 들리기 때문입니다. 해당 디렉토리에 항목을 추가하기로 결정한 경우 문제가 발생할 수 있습니다. ('add -f'를 사용하거나 제외 파일에서 제거해야합니다.) – Cascabel
'-f'에 대한 좋은 지적 –
이것은 모든것에 대해 여전히 stat를하고 시도한 사람에 따라 git status를 빠르게하지는 않습니다 그것. – nosatalian