В сценарии разреженной проверки команда git checkout .
восстанавливает каталоги, которые следует игнорировать. Это задумано или потенциальная проблема в Git? Я использую git checkout .
, чтобы отменить любые изменения, внесенные в мою рабочую копию — есть ли другая команда, которая сделает то же самое и не будет страдать от этой проблемы?
Вот воспроизводимый пример:
rm -rf test
git init test
cd test
for f in a b c; do
mkdir $f
touch $f/$f
git add $f/$f
git commit -m "added $f"
done
git config core.sparsecheckout true
echo a > .git/info/sparse-checkout
echo b >> .git/info/sparse-checkout
git read-tree -m -u HEAD
ls
a b
Все идет нормально. Вот проблема:
git checkout .
ls
a b c
Кстати:
git --version
git version 1.7.10.4
Вопрос Почему исключенные файлы продолжают появляться в моем git sparse checkout? связан, но намного старше и не совсем описывает то, что я вижу.