{{tag>scm git}}

====== .gitignore файл ======

<note important>Внимание .gitignore работает только с теми файлами, которые не содержатся в репозитории.

If a file is already being tracked by Git, adding the file to .gitignore won’t stop Git from tracking it. You’ll need to do git rm --cached <file> to keep the file in your tree and then ignore it.</note>

===== Исключем из индекса =====

Если всетаки вы решили добавить в .gitignre фалы ранее закомиченные, их необходимо удалить из индекса или обновить индекс.
Для этого можете воспользоваться командами

  $ git update-index --assume-unchanged -- <file>

или 

  $ git rm --cached <file>

А для получения списка файлов можете воспольоваться

  $ git status --porcelain

И в нем найти необходимый файл с помощью grep

===== Включаем в индекс =====

  $ git update-index --no-assume-unchanged -- <file>

====== Особенности ======

.gitignore не влияет на git stash save, хотя влияет на git clean -df

Почему так, я и не понял.

