Подтвердить что ты не робот

Будет ли git -rm - кэшировать удаление других рабочих файлов дерева пользователей, когда они вытаскивают

Я хочу прекратить отслеживать файлы, но все равно сохраняю их в рабочем дереве.

Я понял, что git rm --cached FILE позволит мне это сделать. Однако, если кто-то другой потянет это изменение, будут ли удалены их локальные копии?

4b9b3361

Ответ 1

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

Однако если удаленные пользователи внесли локальные изменения в эти файлы, они не будут удалены, так как pull приведет к конфликту слиянием.

Как Jefromi предлагает в своем комментарии, в то время как файлы удаляются на сторонах других пользователей, их можно легко восстановить - они находятся под версия-контроль, не так ли?;-) Файлы можно получить с помощью git checkout <revision> -- <files...>. В качестве ревизии вы можете указать идентификатор предыдущей фиксации, для ее сохранения в ORIG_HEAD (см. этот вопрос):

git checkout ORIG_HEAD -- removed_file

Ответ 2

В таком случае я предпочел бы игнорировать их локально:

Если они уже отслеживаются:

git update-index --skip-worktree FILE

Если они не отслеживаются: добавьте их в локальный файл исключений

echo "FILE" >> .git/info/exclude

Вы также можете иметь глобальный .gitignore, если он что-то сделает для всех ваших репозиций (например, * ~)