Как удалить/перезаписать файл из репозитория git при разреженной проверке?

#git #sparse-checkout

Вопрос:

Допустим, у меня есть файл в разреженной проверке:

 git sparse-checkout set '/*' '!file.txt'
 

Теперь, после запуска, он исчез из локального дерева, и давайте предположим, что я снова создам этот файл. Как я переопределю или удалю один из них в git-репо, не удаляя его из правил разреженной проверки (или не проверяя его)?

Я не мог использовать git [add|rm] file.txt (первый, когда создавался новый файл, второй, когда нет), оба говорят одно и то же:

 The following pathspecs didn't match any eligible path, but they do match index
entries outside the current sparse checkout:
bb.txt
hint: Disable or modify the sparsity rules if you intend to update such entries.
hint: Disable this message with "git config advice.updateSparsePath false"
 

Вот несколько моих вопросов:

  1. Есть ли способ удалить этот файл из sparse-checkout без проверки этого файла.
  2. Есть ли способ принудительно добавить новое содержимое файла (что-то вроде git add -f file.txt команды, которой, очевидно, не существует).
  3. Если нет встроенного, можем ли мы написать сценарий использования?

Я только что выяснил, что если файл присутствует в правиле разреженной проверки и не присутствовал в HEAD , я могу выполнить git add file.txt добавление, а также git sparse-checkout reapply скрыть его от локального. Если мы сможем найти способ удалить его из разреженной проверки, мы, в принципе, также сможем переопределить.

Комментарии:

1. Эта особенность разреженной проверки находится в стадии разработки прямо сейчас, и методы, которые вы можете и должны использовать сегодня, могут не сработать завтра. Найдите что-нибудь, что работает сегодня, если вам это нужно, но будьте готовы найти что-то другое, когда вы обновите свою версию Git.