Опция –exists-action задает реакцию pip на уже существующий путь при работе с VCS checkout. Решение может удалить данные.
Оставьте abort для CI
Новый runner должен начинать с чистого каталога, поэтому неожиданно занятый путь лучше завершить ошибкой и исследовать, чем автоматически перезаписать неизвестное содержимое.
Понимайте каждое действие
Доступны switch, ignore, wipe, backup и abort, причем wipe удаляет существующее дерево, а backup сохраняет его под другим именем и тоже требует свободного места на файловой системе текущего runner.
python -m pip --exists-action a install -e "sample @ git+https://git.example/repo.git"
Не маскируйте грязный workspace
Если конфликт повторяется, исправьте жизненный цикл checkout или отдельный –src, сохранив лог пути и ревизии вместо постоянного выбора wipe.
Перед switch или wipe сохраните локальные изменения обычными средствами VCS, поскольку pip управляет установкой и не заменяет резервное копирование рабочего дерева.
Подпапку проекта задает fragment subdirectory. Варианты перечисляет общий справочник pip.