2

Каким образом можно сделать что бы при git pull гит игнорировал один файл из репозитория? Сам файл я добавил в .gitignore, но при git pull выдает ошибку:

error: The following untracked working tree files would be overwritten by merge:
config/secrets.yml
Please move or remove them before you can merge.
Aborting

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

Nick Volynkin
  • 34,094
Serfas
  • 21

1 Answers1

5

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

  1. Вам необходимо проверить, что в файле .gitignore у Вас содержится запись о игнорируемом файле.
  2. Выполнить команду git rm --cached /config/secrets.yml

Полезная штука, которую вы можете захотеть сделать — это удалить файл из индекса, оставив его при этом в рабочем каталоге. Другими словами, вы можете захотеть оставить файл на винчестере, и убрать его из-под бдительного ока Git'а. Это особенно полезно, если вы забыли добавить что-то в файл .gitignore и по ошибке проиндексировали, например, большой файл с логами, или кучу промежуточных файлов компиляции. Чтобы сделать это, используйте опцию --cached:

Полезная ссылка: Applying .gitignore to committed files

Denis Bubnov
  • 13,958
  • 2
    Слова «полезная штука» делают перевод душевнее. )) – Nick Volynkin Apr 19 '17 at 06:43
  • 1
    Для файлов настроек лучше использовать не ignore, а залить в репозиторий эталонный файл, и на рабочих копиях сделать git update-index --skip-worktree /config/secrets.yml – Герман Борисов Apr 19 '17 at 08:48