.gitignore는 특정 디렉토리가 아닌 디렉토리의 파일을 제외합니다.


98
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*

이것은 작동하지 않는 것 같습니다. 프로젝트를 복제하면 "application/cache"폴더 나 "application/cache/folder"폴더 등 이 없습니다 .

캐시 폴더의 파일이 캐시되지 않고 폴더가 있으면 폴더 권한이 전송되고 존재하고 싶습니다.

답변:


220

Git은 폴더가 아니라 파일 만 추적하므로 폴더의 모든 항목을 무시하면 Git에서 추적 할 항목이 없습니다. 당신은 추가 할 수 있습니다 .gitignore(각 디렉토리에 파일을 application/cache, application/cache/folder, application/cache/folder/onemorefolder/다음과 같은 내용으로) :

*
!.gitignore

그런 다음 해당 디렉토리를 추가 할 수 .gitignore있으며 각 디렉토리 의 파일 만 추가됩니다. 즉, 이제 디렉토리가 추적됩니다 (예 : 복제 할 때 생성됨).


7
이 목적으로 사용되는 .gitignore 파일은 비어있을 수 있습니다.
kevpie 2011

2
상위 .gitignore파일 에서 폴더를 무시하는 경우 비어있을 수 있습니다 . 이 경우 정확한 내 대답입니다.
KingCrunch 2011

4
더 현명하고 간단하게 .gitkeep이라는 파일을 사용하면 .gitignore 파일에 아무것도 넣을 필요가 없습니다.
Hedgehog

3
@kevpie 폴더에 다른 파일이 있으며 추적을 원하지 않습니다. .gitignore 파일이 비어 있으면 해당 파일이 분명히 추적됩니다.
maliayas

같은 목적 .gitkeep으로 .gitignore. 그것은 나에게 많은 의미를
데르 송 T. Szlachta

22

Git은 빈 디렉토리를 추적하지 않습니다. 커밋하려는 폴더에 빈 자리 표시 자 파일을 추가하기 만하면됩니다.

touch application/cache/.keep
git add -f application/cache/.keep

각 "빈"폴더에도이 작업을 수행하십시오. 나중에이 파일을 무시할 수 있습니다. 실제로 git이 복제시 해당 디렉토리를 생성하도록하기 위해서만 존재합니다. 의 항목 .gitignore은 폴더 내의 다른 파일이 추적되지 않도록합니다 ( git add -f;로 강제하지 않는 한 ).


16

이를 수행하는 또 다른 깨끗한 방법이 있습니다. 보관하려는 폴더에 하위 .gitignore 파일을 두는 대신. 다음과 같이 루트 .gitignore에 넣을 수 있습니다.

application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*
!*.gitkeep

이제 위에 나열된 디렉토리에 빈 .gitkeep 파일을 만들고 커밋합니다. 그러면 폴더는 해당 .gitkeep 파일로 추적되지만 내용은 추적되지 않습니다.


2
아니면 그냥 !*.gitkeep:)
데르 송 T. Szlachta

문제는 폴더의 내용을 무시하고 폴더 자체를 유지하는 방법이었습니다. 그래서 나는 내 대답이 유효하고! *. gitkeep 만 있으면 폴더의 내용을 무시하지 않을 것이라고 생각합니다.
Joel Duckworth

3

.gitignore 파일을 각각에 넣거나 (mipadi가 말한 것처럼) 루트 .gitingnore 파일에 이와 비슷한 것을 만들 수 있습니다.

/assets/*/
/assets/*.*

그것은 나를 위해 잘 작동합니다


이것은 작동하지만 저장소가 파일 확장자를 사용하는 경우에만 가능합니다. 같은 root/LICENSE-FILE것은 제외되지 않습니다.
Brett Zamir 2015

2

Visual Studio는 허용되는 답변을 좋아하지 않았습니다. 작동하려면 * 앞에 새 줄을 추가해야했습니다.

# Ignore all files in this folder.
*
!.gitignore
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.