#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"
Вот несколько моих вопросов:
- Есть ли способ удалить этот файл из sparse-checkout без проверки этого файла.
- Есть ли способ принудительно добавить новое содержимое файла (что-то вроде
git add -f file.txt
команды, которой, очевидно, не существует). - Если нет встроенного, можем ли мы написать сценарий использования?
Я только что выяснил, что если файл присутствует в правиле разреженной проверки и не присутствовал в HEAD
, я могу выполнить git add file.txt
добавление, а также git sparse-checkout reapply
скрыть его от локального. Если мы сможем найти способ удалить его из разреженной проверки, мы, в принципе, также сможем переопределить.
Комментарии:
1. Эта особенность разреженной проверки находится в стадии разработки прямо сейчас, и методы, которые вы можете и должны использовать сегодня, могут не сработать завтра. Найдите что-нибудь, что работает сегодня, если вам это нужно, но будьте готовы найти что-то другое, когда вы обновите свою версию Git.