Из-за внешних странных ограничений я не могу изменить .gitignore
свой репозиторий. Есть ли способ игнорировать файлы и каталоги, кроме изменения .gitignore
? Даже если это глобальное решение, такое как глобальная конфигурация, которая будет применяться ко всем моим репозиториям.
источник
update-index --assume-unchanged
@see stackoverflow.com/a/25253144/292408update-index --skip-work-tree
. Я отредактировал ответ, чтобы добавить несколько ссылок на мои старые ответы, иллюстрирующие эти двеupdate-index
команды.Если вы можете изменить,
.git/info/exclude
вы можете поместить туда те же правила. Но этот файл находится только в вашем локальном репо.источник
.git
подмодуле нет каталога ....git
самом деле находится папка подмодуляparent_repo/.git/modules/submodule_name
. Итак, вы бы отредактировалиparent_repo/.git/modules/submodule_name/info/exclude
Есть три способа указать GIT, какие файлы игнорировать:
.gitignore
файлы$GIT_DIR/.git/info/exclude
core.excludesfile
настройкаПоследние два пункта могут решить вашу проблему.
Для получения дополнительной информации см. Gitignore (5) .
источник
Если вы просто хотите иметь несколько локальных файлов в репозитории, а расположение подкаталога является гибким, вы можете поместить свои файлы,
tracked_dir1/tracked_dir2/untracked_dir/
а затем добавить ихtracked_dir1/tracked_dir2/untracked_dir/.gitignore
с таким содержимым, как:*
Т.е.
источник
Я был в подобных ситуациях, поэтому я добавляю свое предпочтительное решение, о котором я не упоминаю. Проблема
git update-index --assume-unchanged
в том, что вы не можете сделать это для неотслеживаемого файла. Ты сказалЯ предполагаю, что вы имеете в виду, что вы не можете вносить какие-либо изменения
.gitignore
в origin. Если это так, то вы можете добавить неотслеживаемый файл на свой локальный компьютер.gitignore
, а затем сделайтеgit update-index --assume-unchanged .gitignore
так, чтобы ваши изменения.gitignore
никогда не передавались. Теперь вы игнорируете (возможно) неотслеживаемый файл и не влияете на удаленный.gitignore
файл.источник
Игнорировать локальные изменения в отслеживаемых файлах:
git update-index --assume-unchanged my-file.php
Отменить локальные изменения в отслеживаемых файлах:
git update-index --no-assume-unchanged my-file.php
источник:
git help update-index
источник
Вы можете использовать глобальный метод gitignore вместо изменения метода в проекте https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
источник
По-другому:
.gitignore
git update-index --assume-unchanged .gitignore
источник