Подтвердить что ты не робот

Git (TortoiseGit) - Как вернуть один файл к предыдущей ревизии, а затем отменить возврат?

При использовании Git с TortoiseGit: Кто-нибудь знает, как вернуть один файл (или полный репозиторий) в предыдущую версию?

Например, у меня есть репозиторий, содержащий несколько файлов. Один файл существует в трех версиях (1; 2; 3). Теперь я хочу перейти от версии 3 к 2.

TortoiseGit предлагает функцию "Отменить" в диалоговом окне "Показать журнал", которая позволяет перейти к конкретной ревизии, но это приведет к возврату всего вашего репозитория вместо одного файла.

Также, как только я что-то вернул, у меня нет подсказки, как отменить возврат и вернуться к новой версии.

4b9b3361

Ответ 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)