Programing

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

lottogame 2020. 8. 24. 20:52
반응형

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


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

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

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


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

*
!.gitignore

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


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

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

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


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

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

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


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

/assets/*/
/assets/*.*

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


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

# Ignore all files in this folder.
*
!.gitignore

참고 URL : https://stackoverflow.com/questions/5600621/gitignore-exclude-files-in-directory-but-not-certain-directories

반응형