Как отслеживать каталоги, но не файлы с помощью Git?
Я недавно начал использовать Git и меня возникли проблемы только с одной вещью. Как я могу отслеживать каталоги без отслеживания их содержимого?
например, сайт, над которым я работаю, позволяет загружать файлы. Я хочу отслеживать каталог uploads, чтобы он создавался при ветвлении и т. д. но, очевидно, не файлы в нем (тестовые файлы в то время как в ветке разработки или реальные файлы в master).
в моем .пример у меня есть следующие:
uploads/*.*
также пробовал (который игнорирует весь каталог):
uploads/
этот каталог может также содержать подкаталоги (uploads / thumbs/uploads/ videos/) я хотел бы иметь возможность отслеживать эти, но не их файлы.
это возможно с Git? Я искал везде, не находя ответа.
4 ответа:
Git не отслеживает каталоги, он отслеживает файлы, поэтому для достижения этого вам нужно отслеживать хотя бы один файл. Так что предполагая ваш
.gitignore
файл выглядит примерно так:upload/*
вы можете сделать это:
$ touch upload/.placeholder $ git add -f upload/.placeholder
если вы забыли
-f
вы увидите:$ git add upload/.placeholder The following paths are ignored by one of your .gitignore files: upload Use -f if you really want to add them. fatal: no files addedзатем, когда вы делаете
git status
вы увидите:# On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached ..." to unstage) # # new file: upload/.placeholder #очевидно, что вы можете сделать:
$ touch upload/images/.placeholder $ git add -f upload/images/.placeholder
Я писал об этом здесь.
добавить a .гитюдного в каталоге.
лучший ответ, который я нашел, это включить a .gitignore файл в папке загрузки с этим содержимым
# Ignore everything in this directory * # Except this file !.gitignore
вот вам как я могу добавить пустой каталог в репозиторий Git?