Bitbucket: удалить файл коммитом и восстановить его
В Bitbucket Git-репозиторий меняется коммитами. Удаление файла — изменение дерева выбранной ветки, которое нужно сохранить и отправить. Инструкция с вымышленным правым кликом Delete/Restore не подходит как универсальная схема веб-интерфейса.
Локальное удаление
git status
git switch -c remove-obsolete-file
git rm -- path/to/obsolete.txt
git diff --cached --stat
git commit -m "Remove obsolete file"
git push -u origin remove-obsolete-fileПеред началом убедитесь, что рабочие изменения сохранены и выбрана нужная база. Путь замените реальным файлом; не применяйте force, если Git сообщает о несохранённых изменениях. После push откройте pull request по правилам репозитория.
Восстановление из истории
Найдите коммит, в котором нужная версия файла ещё существовала. В современной версии Git её можно восстановить в рабочее дерево, проверить и сохранить новым коммитом:
git restore --source=GOOD_COMMIT -- path/to/obsolete.txt
git diff -- path/to/obsolete.txt
git add -- path/to/obsolete.txt
git commit -m "Restore file"GOOD_COMMIT — заполнитель для проверенного commit ID, а не команда для копирования без изменения. Восстановление одного файла предпочтительнее отмены большого коммита, где были и другие полезные изменения.
История и секреты
Удалённый файл остаётся доступен в прошлых коммитах. Если в нём был токен, сначала отзовите его; обычное удаление не устраняет утечку. Переписывание общей истории — отдельная операция с согласованием и собственными рисками.