Я пытаюсь .gitignore
исключить файл, templates.js
расположенный в public/app/
папке. Мой .gitignore
файл выглядит так:
/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js
Но когда я проверяю Git Gui, templates.js
файл все еще отображается в нем. Как я могу специально исключить файл с помощью .gitignore
?
.gitignore
игнорирует только добавляемый контент..gitignore
поступаю?Ответы:
В отличие от того, что может предполагать название «игнорировать».
.gitignore
используется только при работе сgit add
файлами: другими словами, файл, уже добавленный в репозиторий (индекс), не будет исключен на основе расширения.gitignore
.Сначала вам лучше изменить
.gitignore
так, чтобы файл больше не добавлялся. Добавьте в.gitignore
файл следующую строку :Далее вам нужно исключить файл из репозитория. Вероятно, вы не хотите удалять файл из своей файловой системы, это можно сделать с помощью:
--cached
Флаг обеспечивает файл не будет удален из файловой системы. (Если это не важно, вы можете использоватьgit rm public/app/template.js
, но это приведет к удалению файла ).Задний план
Причина
.gitignore
неактивного использования заключается в том, что иногда вам может потребоваться переопределить.gitignore
. Скажем, например, вы не хотите отслеживать*.log
файлы, вы можете указать*.log
в.gitignore
. Но если есть конкретный, который вы хотите отслеживать, вы можете добавитьgit add -f some.log
. В-f
флаг силы ,git
чтобы добавить файл.источник
После того, как файл был «добавлен» в репозиторий git один раз, он будет продолжать отслеживаться независимо от того, указан ли он в файле .gitignore или нет.
Я предполагаю, что вы ранее добавляли файл template.js, и в этом случае он будет продолжать отслеживать изменения, пока вы не удалите его из репозитория. После того, как файл был удален из репозитория, он будет должным образом проигнорирован через файл .gitignore.
Способ удалить файл из репозитория git (командная строка) без его удаления:
Затем, как только вы это сделаете и попытаетесь зафиксировать файл в своем gitignore, он этого не сделает.
Обратите внимание: если вы специально добавляете файл, который есть в вашем gitignore, ваше ручное добавление файла переопределит gitignore.
источник
Если вы уже отслеживаете файл (
git add
по нему иgit commit
),.gitignore
не поможет.Я считаю, что вы хотите перестать отслеживать файл, а затем использовать его
.gitignore
для его исключения. Чтобы остановить отслеживание файла, но сохранить файл, используйте:git rm --cached <file>
источник
В этом случае вы можете остановить отслеживание
templates.js
с помощьюКак объясняли другие,
.gitignore
игнорирует только добавляемый контент. Например, если вы часто используетеgit add .
и естьtemplates.js
в вашем.gitignore
, то мерзавец не добавит его.источник