.gitignore исключить конкретный файл

Я пытаюсь использовать исключить templates.js расположенном в . Мой

4 ответов


в отличие от того, что может предложить название "игнорировать". .gitignore консультируется только тогда, когда вы git add files: другими словами, файл, уже добавленный в (индекс) репозитория, не будет исключен на основе .gitignore.

сначала вам лучше изменить .gitignore таким образом, что файл больше не добавляется. Добавьте следующую строку в :

public/app/template.js

Далее необходимо исключить файл из репозитория. Наверное, ты!--22-->не хочу удалять файл из вашей файловой системы это можно сделать с помощью:

git rm --cached public/app/template.js

на --cached флаг гарантирует, что файл не будет удален из файловой системы. (Если не важно, вы можете использовать git rm public/app/template.js, но это приведет к удалению файла).

фон

причина .gitignore не используется активно, потому что иногда вы можете переопределить .gitignore. Скажем, например, вы не хотите отслеживать *.log файлов, вы можете указать *.log на .gitignore. Но если есть конкретный, который вы хотите отслеживать, вы можете добавить git add -f some.log. The -f силы флаг git добавить файл.


после того, как файл был "добавлен" в репозиторий git один раз, он будет продолжать отслеживаться независимо от того, указан ли он в списке .файла.gitignore

Я предполагаю, что вы добавили шаблон.JS-файл ранее, и в этом случае он будет продолжать отслеживать изменения, пока вы не удалите его из репозитория. Как только файл будет удален из репозитория, он будет правильно проигнорирован через .файла.gitignore

способ удаления файла из git репозиторий (командная строка) без удаления это

git rm --cached FILENAME

затем, как только вы это сделаете и попытаетесь совершить с файлом в вашем gitignore, он этого не сделает.

обратите внимание, что если вы специально добавляете файл, который у вас есть в gitignore, ваше ручное добавление файла переопределит gitignore.


если вы уже отслеживаете файл (git add его и git commit),.gitignore не поможет.

Я считаю, что вы хотите, чтобы остановить отслеживание файла, и затем использовать .gitignore исключить его. Чтобы остановить отслеживание файла, но сохранить файл, используйте:

git rm --cached <file>


в этом случае вы можете остановить отслеживание templates.js С

git rm --cached public/app/templates.js

как пояснил .gitignore игнорирует только добавляемое содержимое. Например, если вы часто используете git add . и templates.js в своем .gitignore, тогда git не добавит его.