하위 디렉터리를 제외한 모든 것을 무시하도록 Git에게 어떻게 말합니까?
저장소에 있는 모든 파일을 무시합니다. 저장소에서 발생하는 파일을 제외하고bin
하위 디렉터리.다음을 추가하려고 했습니다..gitignore
:
*
!bin/*
그러나 이는 원하는 효과를 발휘하지는 다음과 같습니다.다음 파일 안에 새 파일의 파일을 만들었습니다.bin/
하지만 하기git status
스틸 쇼nothing to commit (working directory clean)
.
좋은 의견이라도 있나?
이렇게 하면 루트 파일 및 루트 디렉터리가 무시되고 루트 bin 디렉터리가 무시되지 않습니다.
/*
/*/
!/bin/
이렇게 하면 하위 디렉터리와 해당 파일을 포함한 모든 bin 디렉터리를 얻을 수 있습니다.
일부 디렉토리에서 하나의 디렉토리 "MY_SUPER_DUPER_TEMPLATE_directory"를 제외한 모든 항목을 무시하는 방법
구조: /bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
/*
!/bitrix
/bitrix/*
!/bitrix/templates
/bitrix/templates/*
!/bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
*.DS_Store
*.gitignore
대상으로 이동하는 동안 모든 항목을 제외해야 하지만 대상을 포함해야 합니다.
참고: 이 파일은 제외 파일(예: gitignore)이므로 논리가 반전됩니다.tsp 디렉토리를 제외한 모든 tsp 디렉토리를 무시하고 src 디렉토리를 제외한 모든 tsp 디렉토리를 무시합니다.
/*
!/tsp
/tsp/*
!/tsp/src
/tsp/src/*
!/tsp/src/*.h
!/tsp/src/*.cpp
!/tsp/src/data.txt
!/.gitignore
당신이 가진 유일한 문제는bin
디렉터리 자체가 다음과 일치하지 않습니다.bin/*
패턴 소짓은 심지어 안 보입니다.bin
디렉토리입니다.
떠오르는 두 가지 해결책이 있습니다.
.gitignore
:
*
!/bin/
!bin/*
또는
.gitignore
:
*
!/bin/
bin/.gitignore
:
!*
첫 번째 솔루션은 파일을 무시하는 것을 멈추지 않기 때문에 두 번째 솔루션을 선호합니다.bin
호출되지 않은 하위 디렉터리에 있는 디렉터리bin
이것은 당신의 상황에서 중요할 수도 있고 중요하지 않을 수도 있습니다.
공식 git doc에 따르면, 예 중 하나는 다음과 같습니다.
특정 디렉토리 foo/bar를 제외한 모든 항목을 제외하는 예(슬래시 없이 와일드카드도 foo/bar 내의 모든 항목을 제외함):
$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar
선행 슬래시에 대한 설명은 다음과 같습니다.gitignore에서 선행 슬래시를 사용하는 경우.
최신 GIT 버전을 따라 해보십시오.
*
!*/
!/path/to/your/dir/**
슬래시로 패턴을 시작하여 각 패턴을 상위 git 디렉토리에 고정하는 것이 더 좋은 방법이라고 생각합니다.
/*
!/public_html
!/.gitignore
모든 파일을 무시하는 대신 디렉터리에 있는 파일이 아닌 최상위 파일만 무시합니다.
이것..gitignore
내게 맞는 것:
*/
/*
!bin/
파티에 늦었지만, 어떤 대답도 저에게 "상자 밖으로" 먹히지 않았습니다.이 기능은 다음과 같습니다.
*
!bin
!bin/**
- 첫 번째 줄은 모든 것을 무시합니다.
- 두 번째 줄은 "bin" 디렉터리 자체를 포함합니다.
- 마지막 줄은 "bin" 디렉터리의 전체 내용을 포함합니다(이중 별표 참조).
이 알려지지 않은 깃벌레를 시도해 보세요.
!bin**/**
도움이 되길 바랍니다 :)
지원 문서 git 버그 샘플
PS: 댓글을 달기 전에 먼저 시도해 보세요.
나는 최근에 이것을 해야만 했습니다.
*
!sub-dir/
!sub-dir/*
폴더 하나를 제외하기 위해 왜 두 줄이 필요한지는 모르겠지만, 이것이 저와 macrows에게 효과가 있었습니다.
여기 제 해결책이 있습니다.내 시나리오에서는 다음과 같은 하위 폴더가 있는 폴더가 있었습니다.
- 데이터베이스(기본 폴더)
- conf(하위 폴더)
- 드라이버(하위 폴더)
- 병(하위 폴더)
- sql(하위 폴더)
그리고 데이터베이스 폴더에서 나는 오직 sql 폴더만 밀어넣고 싶었습니다..gitignore
파일은 다음과 같습니다.
database/*
!database/sql/
여기서 첫 번째 줄은 데이터베이스 폴더의 모든 하위 폴더를 무시한다고 말하고 두 번째 줄은 데이터베이스 폴더의 모든 하위 폴더를 무시하므로 sql 하위 폴더를 제외(무시하지 않음)한다는 의미입니다.
파일과 를 사용하여 폴더를 무시해야 ./*
-- **/node_modules
++ **/node_modules/*
그리고나서
++ !node_modules/@my-package/
언급URL : https://stackoverflow.com/questions/1248570/how-do-i-tell-git-to-ignore-everything-except-a-subdirectory
'programing' 카테고리의 다른 글
ExpandoObject의 진정한 이점은 무엇입니까? (0) | 2023.05.05 |
---|---|
이클립스에서 동적 웹 프로젝트의 컨텍스트 루트를 변경하는 방법은 무엇입니까? (0) | 2023.05.05 |
3.x를 사용하여 람다 매개 변수에 대한 2.x의 튜플 언팩을 시뮬레이션하려면 어떻게 해야 합니까? (0) | 2023.05.05 |
git pull origin 마스터와 git pull origin/master 간의 차이 (0) | 2023.05.05 |
콘텐츠를 삭제하지 않고 많은 수의 파일을 분할하는 방법 (0) | 2023.05.05 |