.gitignore не работает должным образом

У меня есть веб-сайт, и я развернул Git для управления версиями файлов, чтобы отслеживать отредактированные файлы ... Я заметил, что даже файлы кеша отправляются в Gitlab, чего я не хочу.

Я создал файл .gitignore и вставил такую ​​строку:

/приложение/кэш/dev/умный/компилировать/*

Я добавил это, зафиксировал и нажал, Жизнь прекрасна.

Теперь каждый раз, когда я делаю: git status, я вижу эти файлы как измененные, которые просматривают кеш.

 modified:   app/cache/dev/smarty/compile/00/7c/14/007c1437400d132932e061d38915162f50f3b8d7.file.ApProductList.tpl.php
    modified:   app/cache/dev/smarty/compile/11/0e/c7/110ec72aa9921d2c382ad628bdb2f0bc5105a617.module.ps_searchbar.tpl.php
    modified:   app/cache/dev/smarty/compile/14/cf/62/14cf62b857ae9d1a45052e93e4a5f7744c543c46.file.ApMegamenu.tpl.php
    modified:   app/cache/dev/smarty/compile/15/9c/65/159c651fcb923e7ff3efcd17bc6356e6f77d1032.file.leoslideshow.tpl.php
    modified:   app/cache/dev/smarty/compile/18/2a/ea/182aea6706a2d4ae5bfc3f6d3a5b33417c49b6af.module.notification.tpl.php
    modified:   app/cache/dev/smarty/compile/24/41/64/24416476c1e4c535f73ed4c66a125c0e880f294b.file.leo_list_product_review.tpl.php
    modified:   app/cache/dev/smarty/compile/30/7d/c6/307dc6bd4724d29d1572cc301dd7148e962604ef.module.ps_emailsubscription.tpl.php
    modified:   app/cache/dev/smarty/compile/32/74/ea/3274eac0d659ac48de29176349457a485f0a7846.file.ApBlockLink.tpl.php
    modified:   app/cache/dev/smarty/compile/35/65/5e/35655e6409b6198f29dd6e732ef9598dec599880.module.ps_shoppingcart.tpl.php
    modified:   app/cache/dev/smarty/compile/38/37/a8/3837a8fdc3367fa8be15dd17f53842319311023b.file.plist1487280701.tpl.php
    modified:   app/cache/dev/smarty/compile/39/e1/75/39e175b351bd73dee402d5a54877d3be6344bbe4.file.leo_cart_button.tpl.php
    modified:   app/cache/dev/smarty/compile/3b/2b/08/3b2b08f3e7cd22b2aad86e184d6bdfdc8b3802cf.module.modal.tpl.php
    modified:   app/cache/dev/smarty/compile/43/80/cd/4380cd32bf825479f4e58e8f1a26818a8f607913.file.ApHtml.tpl.php
    modified:   app/cache/dev/smarty/compile/51/3e/9c/513e9ce13e7d8790fecede8bcf00cdc8ca0ef171.file.slidecaptcha-header.tpl.php
    modified:   app/cache/dev/smarty/compile/5a/51/17/5a5117cf6d0e1dffe864e8c6e12c7c631b3df555.file.ApColumn.tpl.php
    modified:   app/cache/dev/smarty/compile/5e/b2/05/5eb205658affb81ad209afd041b5ce7f724c9288.file.appagebuilder.tpl.php
    modified:   app/cache/dev/smarty/compile/75/be/84/75be842c1b804d7817967aceea1b33cc9f212c84.file.ApModule.tpl.php
    modified:   app/cache/dev/smarty/compile/80/5c/e2/805ce2d86f1187d802d55b829fd8b831e391ad7c.module.fly_cart.tpl.php
    modified:   app/cache/dev/smarty/compile/80/ac/9d/80ac9ddb06fe7b43ffdd2f5cd1185536480d2577.module.ps_socialfollow.tpl.php
    modified:   app/cache/dev/smarty/compile/8d/87/67/8d87672f84fea39023a026ec3e77c50d0205b84a.file.megamenu.tpl.php
    modified:   app/cache/dev/smarty/compile/94/3d/87/943d870759e124a38846d736284d297b82268471.file.ApSlideShow.tpl.php
    modified:   app/cache/dev/smarty/compile/97/9d/97/979d976ed6034e059eef22b8e951012b4262674e.file.ApManuFacturersCarousel.tpl.php
    modified:   app/cache/dev/smarty/compile/99/f1/47/99f147cdc5f8fa7776be7f182bac4542c4e7954c.file.ApProductCarousel.tpl.php
    modified:   app/cache/dev/smarty/compile/9d/30/9b/9d309b84d5f56fc52e6632a8d91893c2f5a67658.file.javascript_parameter.tpl.php

это длинный список, как перестать отправлять эти файлы, игнорируя их, я мог что-то забыть?


person Community    schedule 19.05.2018    source источник
comment
попробуйте команду git rm --cached -r ‹файлы›   -  person shubham johar    schedule 19.05.2018
comment
Если эти конкретные файлы отслеживались и фиксировались до того, как вы добавили gitignore, вы можете удалить их вручную и отправить это как фиксацию. После этого они не появятся.   -  person Justin.Cooke    schedule 19.05.2018
comment
Очевидно, Git игнорирует вас, а не ваши файлы. А может и нет.   -  person axiac    schedule 19.05.2018


Ответы (3)


Добавление файлов в .gitignore не удаляет их из репозитория. Это просто не позволяет git add добавлять эти файлы в качестве новых файлов.

Таким образом, после добавления /app/cache/dev/smarty/compile/* в .gitignore вам также необходимо удалить эти файлы из вашего репозитория, желательно не удаляя их из файловой системы, чтобы не нарушить работу вашего сайта.

Для этого вы можете выполнить git rm --cached -r app/cache/dev/smarty/compile/*, проверить результат, что он удаляет только те файлы, которые вы хотите удалить, и зафиксировать их.

person Lienhart Woitok    schedule 19.05.2018
comment
это было умно и как шарм! Большое спасибо - person ; 19.05.2018
comment
Должен ли я удалить звездочку, как говорят другие? - person ; 19.05.2018
comment
Это зависит от личного вкуса, насколько я понимаю, в данном случае технически это не имеет значения. Удаление звездочки указывает git игнорировать каталог и его содержимое, оставляя звездочку на месте, git игнорирует все файлы и каталоги в каталоге. Поскольку git отслеживает только файлы, а не каталоги, в обоих случаях получается один и тот же набор фактически игнорируемых файлов. - person Lienhart Woitok; 19.05.2018

Это описание формата шаблона gitignore: https://git-scm.com/docs/gitignore#_pattern_format

В вашем случае /app/cache/dev/smarty/compile/ без астериков должно работать.

Но gitignore не поможет, если ваши файлы отслеживаются (если они находятся в измененном разделе, это означает, что они отслеживаются). Этот ответ должен помочь вам удалить их из отслеживаемых: Удалить папку из отслеживания git

person Ann Sorokina    schedule 19.05.2018

Во-первых, вам нужно обновить .gitignore, чтобы он соответствовал всем подкаталогам /app/cache/dev/smarty/compile, удалив завершающую звездочку.

Затем вам нужно очистить файлы, которые уже были добавлены в репозиторий в более ранних коммитах ветки. Вы можете сделать это, запустив git rm -r app/cache/dev/smarty/compile. Как только они будут удалены из вашей ветки, они больше не должны появляться при запуске git status.

person Pierre    schedule 19.05.2018