Я хотел бы восстановить целый каталог (рекурсивно) из истории моего репозитория git (точно так же, как this question).Команда git-only для восстановления каталога в состоянии фиксации
Я знаю, что команда сразу же мерзавец является:
git checkout [tree-ish] -- path/to/the/folder
Но у меня есть проблема: восстановить существующий каталог в состоянии коммит, содержание директории должно быть удалено первым. В других случаях существующие файлы, которые не существовали в старой фиксации, не будут удалены. Таким образом, чтобы получить именно то, что я хочу, я должен сделать следующую команду:
rm -Rf path/to/the/folder
git checkout [tree-ish] -- path/to/the/folder/
(см this answer и комментарии).
Я хотел бы знать, если есть ГИТ-единственная команда для достижения того же поведение двух команд выше, для того, чтобы избежать делает rm
вручную.
EDIT: Я не хочу удалять неиспользуемые файлы или чистить после оформления заказа, у меня их нет. Я хочу восстановить папку точно так же, как это было какое-то обязательство, удаление добавленных файлов, восстановление удаленных файлов и т. Д.
После 'git checkout' вы можете сделать' 'git clean -xdf'. – Leon
Возможный дубликат [Как удалить локальные (не проверенные) файлы из текущей ветки Git?] (Http://stackoverflow.com/questions/61212/how-to-remove-local-untracked-files-from-the-current -git-branch) –
Нет, я не делаю rm для удаления неиспользуемого файла в моем репо, я должен сделать это перед проверкой, чтобы иметь «реальный» checkout: я хотел бы восстановить мою папку в точно состояние какой-то битвы назад. Если я не удалю свою папку перед командой checkout, я буду в гибридной ситуации, в которой существующие файлы, которые не существовали в старой фиксации, все еще находятся в папке – Rowandish