SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Системы и инструменты

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, а не команда для копирования без изменения. Восстановление одного файла предпочтительнее отмены большого коммита, где были и другие полезные изменения.

История и секреты

Удалённый файл остаётся доступен в прошлых коммитах. Если в нём был токен, сначала отзовите его; обычное удаление не устраняет утечку. Переписывание общей истории — отдельная операция с согласованием и собственными рисками.

Документация