Git (TortoiseGit) - Как вернуть один файл к предыдущей ревизии, а затем отменить возврат?
При использовании Git с TortoiseGit: Кто-нибудь знает, как вернуть один файл (или полный репозиторий) в предыдущую версию?
Например, у меня есть репозиторий, содержащий несколько файлов. Один файл существует в трех версиях (1; 2; 3). Теперь я хочу перейти от версии 3 к 2.
TortoiseGit предлагает функцию "Отменить" в диалоговом окне "Показать журнал", которая позволяет перейти к конкретной ревизии, но это приведет к возврату всего вашего репозитория вместо одного файла.
Также, как только я что-то вернул, у меня нет подсказки, как отменить возврат и вернуться к новой версии.
Ответы
Ответ 1
В TortoiseGit ответ - щелкнуть правой кнопкой мыши папку проекта и нажать "Показать журнал", затем щелкните правой кнопкой мыши изменение, которое вы хотите отменить, и нажмите "Переключить/Оформить заказ". Это позволит вам перейти от этого странного места в стек фиксации или ветки в случае, если вы планируете совершить и хотите, чтобы все оставалось в силе.
Ответ 2
Из командной строки: git checkout
, вероятно, вы хотите.
В документации приведен пример:
$ git checkout master~2 Makefile
чтобы вернуть Makefile
к двум ревизиям назад в основной ветке
Внутри TortoiseGit (через проводник Windows) похоже, что вы можете сделать это со следующими шагами:
Перейдите в проводник в папку, в которой находится файл.
Щелкните правой кнопкой мыши файл, который вы хотите вернуть, выберите Show log
в контекстном меню TortoiseGit
В верхней части ( "график" ) выберите версию, в которой есть версия файла, который вы хотите вернуть, в
В третьем разделе (список файлов) щелкните файл правой кнопкой мыши и выберите Revert to this revision
Вы должны получить сообщение типа 1 files revert to e19a77
Ответ 3
Обновлен мой ответ на основе этих комментариев:
Предположим, что рабочее дерево чистое и вы хотите:
- Оформить некоторые файлы предыдущей версии
- Тестирование
- Вернуть текущую версию
-
Оформить некоторые файлы предыдущей версии
(a) Щелкните правой кнопкой мыши файл, который вы хотите вернуть, и покажите журнал для этого файла
![введите описание изображения здесь]()
(b) Щелкните правой кнопкой мыши файл в списке файлов и выполните Вернуть родительскую версию
![введите описание изображения здесь]()
![введите описание изображения здесь]()
(c) повторите (a), (b), пока не получите все нужные файлы.
![введите описание изображения здесь]()
-
Тестирование
-
Вернуть текущую версию
(a) выполнить Revert... в контекстном меню проводника
Таким образом, вы можете выбрать файл (ы), который хотите вернуть.
(b) или этот быстрый способ: выполнить Reset Жесткий в диалоговом окне журнала
Таким образом, все измененные файлы возвращаются. (= > Потерял все рабочие изменения)
![введите описание изображения здесь]()
![введите описание изображения здесь]()
(Проверено на TortoiseGit 1.8.16.1, GfW 2.6.4.windows.1, Win 10 64bit)
Ответ 4
Также можно получить конкретный файл:
- Щелкните файл правой кнопкой мыши
- Выберите пункт меню: Git Показать журнал
TortoiseGit показывает диалог со списком всех версий
- Нажмите на предыдущую ревизию (2)
В списке внизу диалогового окна отображаются все файлы, связанные с фиксацией
- Найдите файл, который вы хотите просмотреть
- Щелкните правой кнопкой мыши на этом файле и сохраните версию на
- Это сохранит предыдущую ревизию файла с номером фиксации, объединенным в файл
Например:
- исходный файл - file.txt
- версия 2 будет сохранена как файл-67b51a8.txt
Я использую TortoiseGit v2.2.0.0
Ответ 5
Для Tortoise версии 2.3.0:
Вы можете сделать это несколькими способами, но быстрее всего я думаю, что:
- Щелкните правой кнопкой мыши файл
- Выберите опцию меню "Diff с предыдущей версией"
- Щелкните правой кнопкой мыши на левой (предыдущей) версии файла
- Выберите пункт меню "Использовать весь этот файл"
- Сохранить изменения (ctrl + s)