Рекурсивный git update-index -assume-неизменный
Я пытаюсь запустить следующее:
git update-index --assume-unchanged myFolderToIgnore
Где myFolderToIgnore
- это папка. Однако он не может сказать, что его "не удалось" отметить.
Итак, я попробовал:
git update-index --assume-unchanged myFolderToIgnore/
Какой GIT отвечает Ignoring path myFolderToIgnore/
, но ничего не делает (он все еще видит мои изменения и пытается их проверить).
В конце концов мне пришлось войти и вручную пометить каждый отдельный файл как неизменный. Что мне здесь не хватает?
Ответы
Ответ 1
update-index
- это внутренняя команда сантехники и, таким образом, не такая удобная, как настоящие интерфейсные команды. Вам придется самому обработать бит рекурсии:
git ls-files -z myFolderToIgnore/ | xargs -0 git update-index --assume-unchanged
Ответ 2
Я столкнулся с этой проблемой, когда в моей папке было сотни тысяч файлов и тысячи папок.
Это привело к тому, что "Список аргументов слишком длинный".
Следующее решение будет запускать команду для каждой папки и перемещаться по содержимому в этих папках. Поэтому, пока ваши сотни тысяч файлов будут разделены в папках, это будет работать.
find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && pwd && git ls-files -z ${pwd} | xargs -0 git update-index --assume-unchanged" \;