git 디렉토리의 모든 확장자 파일 무시
디렉토리에 있는 유형의 모든 파일을 무시하는 방법이 있습니까?
**
것 git 의미 없가는 것럼보로므이처않다, 이작지습니동하것은에▁is않▁doesn다니:습g▁work.
/public/static/**/*.js
이 방법은 임의의 중첩 폴더를 일치시키는 것입니다.
그것은 다음과 같은 것으로 보입니다.**
은 구은에지다에서 지원됩니다.git
전기로으준 1.8.2.1
문서에 의하면
의 연속 별표("두의개별표연속")(표별▁("ks▁two(")")
**
과 같은 를 가질 수 있습니다." 는 전 경 이 일 특 의 가 있 수 습 니 다 질 를 미 한 별 서 에 패 턴 체 는 하 치 로 름 과
선적인도▁""
**
슬래시 뒤에 모든 디렉토리에서 일치하는 것을 의미합니다.를 들어 " 를들어예,,"**/foo
" "와 합니다."와 일치합니다.foo
" 턴과 " 일동한 " 서든어패, 디든서▁""와한 모든 곳foo
". "**/foo/bar
" "와 합니다."와 일치합니다.bar
" 렉리바로아곳있모디든는래에토▁"곳▁under▁directory" 바로 아래에 곳.foo
".오는 "행후"
/**
안에 있는 모든 것과 일치합니다.를 들어 " 를들어예,,"abc/**
" " " " " 합니다.abc
..gitignore
파일, 무한 확장자.슬래시 다음에 두 개의 별표가 연속적으로 나타나면 슬래시가 0개 이상의 디렉토리와 일치합니다.를 들어 " 를들어예,,"
a/**/b
치항 목일 "와 합니다.a/b
", "a/x/b
", "a/x/y/b
등등.다른 연속 별표는 유효하지 않은 것으로 간주됩니다.
해본 적은 없지만,git help ignore
만약 당신이 그것을 넣는다면..gitignore
와 함께*.js
/public/static
당신이 원하는 것을 할 것입니다.
참고: 아래의 Joeys의 답변도 확인하십시오. 특정 하위 디렉터리의 파일을 무시하려면 로컬 .gitignore가 올바른 솔루션입니다(로컬성이 좋습니다).그러나 전체 레포에 적용하기 위해 동일한 패턴이 필요한 경우 ** 솔루션이 더 좋습니다.
업데이트: @Joey의 답변을 보십시오. Git는 이제 다음을 지원합니다.**
패턴의 구문입니다.두 가지 방법 모두 잘 작동해야 합니다.
gitignore(5) man 페이지에는 다음과 같은 내용이 있습니다.
경로와 동일한 디렉토리 또는 상위 디렉토리에 있는 .gitignore 파일에서 읽은 패턴. 상위 레벨 파일(워크 트리의 최상위 레벨까지)의 패턴은 하위 레벨 파일의 패턴에 의해 파일이 포함된 디렉토리로 재정의됩니다.
은 이이의것패턴이의 .gitignore
repo의 지정된 디렉토리에 있는 파일은 해당 디렉토리와 모든 하위 디렉토리에 영향을 미칩니다.
제공한 패턴
/public/static/**/*.js
, (지적한 처럼) 완히옳않다니당, 첫째전습, (것신올게언처럼한급르바) 때문입니다.**
Git에서 구문을 사용하지 않습니다. 선두주자인 선주자는두또한는▁also./
경로 이름의 시작 부분에 해당 패턴을 고정합니다.(그래서,/public/static/*.js
과 일치합니다./public/static/foo.js
하지만 아닙니다. /public/static/foo/bar.js
.)
선두 제거 /
같은 경로를 일치시키는 것도 작동하지 않습니다. public/static/foo.js
그리고 foo/public/static/bar.js
.
편집: 선행 슬래시를 제거하는 것만으로도 작동하지 않습니다. 패턴에 슬래시가 여전히 포함되어 있기 때문에 Git에 의해 일반적이고 비재귀적인 셸 글로브로 처리됩니다(이것을 지적해 주셔서 @Joey Hoer 감사합니다).
@에서 제안한 것처럼, 할 일은 @ptyx 파일, @ptyx 파일을 입니다.<repo>/public/static/.gitignore
다음 패턴만 포함합니다.
*.js
단서가 없습니다./
경로의 은 래서그 경것어일것이치고도할서그, 의 됩니다./public/static
디렉터리 및 해당 하위 디렉터리.
나는 그것을 열어 보았습니다..gitignore
에 있는 , "vscode",windows 10
여기에는 이전에 추가한 일부 무시 파일(있는 경우)이 표시됩니다.
파일을 무시하는 새 규칙을 만들려면 다음과 같이 하십시오.(.js)
다음과 같이 파일 확장명을 추가합니다.
*.js
모두 무시합니다..js
파일git
저장소
특정 디렉토리에서 특정 유형의 파일을 제외하려면 다음을 추가할 수 있습니다.
**/foo/*.js
이렇게 하면 /foo/ 디렉토리 내의 모든 .js 파일만 무시됩니다.
자세한 내용은 git-ignore를 참조하십시오.
추적되지 않은 파일을 무시하려면 .git/info/exclude로 이동합니다.제외는 무시된 확장명 또는 파일 목록이 있는 파일입니다.
다른 대답들이 이미 말했듯이, 다음과 같은 패턴은**/*.exe
모두 무시합니다..exe
파일을 저장할 수 있습니다.
그러나 많은 사람들(나와 같은)이 문제 해결 중에 이 질문에 도달할 수밖에 없습니다.
왜 이게 안 되는 거지?
자, 명령어는git status
아니면 IDE가 당신에게 말해줄 수도 있습니다.xyz.exe
곧 헌신할 것이고, 당신은 왜 그런지 알아내려고 벽에 머리를 부딪칠 수도 있습니다, 왜냐하면 당신은 실제로 그렇게 했기 때문입니다.**/*.exe
당신의 .gitignore 파일에, 그리고 이 Q&A가 사실 이것이 정확한 마법 주문이라는 것을 확인했기 때문에, 이것을 방지해야 합니다.하지만 그렇지 않습니다.
이러한 터무니없는 상황에 처한 실제 이유는 귀하(또는 귀하의 IDE가 자동으로)가 이미 해당 파일을 준비했기 때문입니다.
해결책은 먼저 단계를 해제한 다음 무시하는 것입니다.
<rant>
"스테이지 영역"은 말할 가치도 없는 어떤 이점도 없이 고통의 주요 원인인 깃의 전혀 쓸모없는 특징이지만, 깃이 어떻게 작동하는지에 있어서 중심적이기 때문에 여러분은 항상 그것을 알고 있어야 합니다.IDE마다 접근 방식이 다릅니다. Visual Studio에서는 스테이징 작업을 수행해야 하기 때문에 Visual Studio에서 깃을 사용하는 것이 큰 문제이며 사용자 환경이 매우 열악한 이유 중 하나입니다.IntelliJ IDEA는 여러분을 위해 무대 뒤에서 공연하는 것을 처리하기 때문에 여러분이 그것에 의해 방해를 받거나 심지어 그것의 존재를 알지 않아도 됩니다. 그것이 IntelliJ IDEA에서 깃을 가지고 일하는 것이 즐거운 이유 중 하나입니다.불행하게도 완벽하게 작동하는 것은 아무것도 없기 때문에 어쩔 수 없이 IntelliJ IDEA를 사용하더라도 때때로 고통이 있을 것입니다. </rant>
제 생각에 가장 간단한 해결책은find
나는 여러 개를 갖는 것을 좋아하지 않습니다..gitignore
하위 디렉터리를 돌아다니며 독특한 최상위 레벨을 관리하는 것을 선호합니다..gitignore
이렇게 하려면 찾은 파일을 파일에 추가하기만 하면 됩니다..gitignore
그렇다면/public/static/
다음과 같은 것을 사용할 수 있습니다.
find . -type f -name *.js | cut -c 3- >> .gitignore
저는 그것을 잘라낸다는 것을 발견했습니다../
처음에는 어떤 파일을 피해야 하는지 이해하기 위해 git이 필요한 경우가 많습니다.그러므로.cut -c 3-
.
깃을 사용했습니다.rm --cached **.DS_Store
모든 것을 제거하고 추적을 해제합니다..DS_Store
보고서의 파일.
다른 답변 외에 몇 가지 추가 팁(운이 좋으며 다른 이유로 문제가 발생한 경우 유용할 수 있음):
- 코드에서 100MB보다 큰 파일을 무시해야 합니다.
- Git 워크플로우를 다시 시작하면 됩니다.로컬 .git 폴더를 삭제하고 git 폴더를 다시 git한 후 git 허브로 푸시를 다시 시도합니다.
언급URL : https://stackoverflow.com/questions/10712555/gitignore-all-files-of-extension-in-directory
'programing' 카테고리의 다른 글
bash에서 &>는 무엇을 합니까? (0) | 2023.05.02 |
---|---|
보다 더 좋은 것.NET 리플렉터? (0) | 2023.05.02 |
Postgres에서 키워드와 유사한 열 이름 이스케이프 (0) | 2023.05.02 |
mongo의 하위 문서 색인 (0) | 2023.05.02 |
날짜 시간 필드별 최신 MongoDB 레코드 가져오기 (0) | 2023.05.02 |