Как восстановить предыдущую версию кода в Xcode

Я работаю над проектом Objective C в Xcode и должен восстановить предыдущую версию, которая была зафиксирована в системе управления версиями. Как мне это сделать? Я могу найти информацию о том, как зафиксировать и нажать, но нет информации о том, как восстановить старую версию.

6 ответов


вы не можете вернуть весь проект сразу в Xcode, но вы можете сделать это с терминала; просто cd в папку вашего проекта и введите git log, чтобы найти хэш, который вы ищете, а затем сделать git checkout [хэш].


цитата из документации Apple на https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/Save_and_Revert_Changes_to_Files/ManageChanges.html

" Сравнение версий файлов для возврата строк кода Выберите вид > Редактор версий > показать представление сравнения, чтобы сравнить версии файлов, сохраненных в репозитории. Используйте перемычки для выбора версий файлов в зависимости от их положения в репозитории. Каждая панель перехода управляет выбор для панели содержимого над ней. Чтобы отобразить версию, просмотрите иерархию, чтобы найти ее, затем щелкните, чтобы выбрать ее. Затененные области указывают на изменения между версиями." "Вы можете использовать временную шкалу версий для выбора версий файлов на основе их хронологического порядка. Щелкните значок средства просмотра временной шкалы (../ art / TimeLineIcon_2x.png) в Центральном столбце для отображения временной шкалы между двумя областями редактирования. Переместите указатель вверх или вниз по временной шкале, чтобы просмотреть доступные варианты. Когда если вы нашли нужную версию, щелкните треугольник левого или правого индикатора, чтобы отобразить ее в соответствующей области редактора. Текущую рабочую копию файла можно редактировать в Редакторе версий. Если вы хотите отменить изменения между версиями, можно скопировать код из старой версии и вставить его в текущую версию."

в последней строке отображается ключ: копировать и вставить.


в Xcode 9 вы можете проверить любую предыдущую версию.

  1. нажмите на значок управления версиями в разделе навигатор слева или перейдите в меню Вид->навигаторы->показать навигатор управления версиями.
  2. будет показан список всех коммитов для выбранной ветви.
  3. щелкните правой кнопкой мыши на нужной фиксации и выберите "оформить заказ "commitID"

вы также можете напрямую создать ветку оттуда, которая может быть еще более полезной в некоторых дела


вот визуальный метод в Xcode 8

enter image description here


Если вы хотите получить всю выписку проекта любой зафиксированной версии в отдельной папке, попробуйте этот сценарий оболочки:

#!/bin/sh
#
#  restores an old version of xcodeproject from git repository
#  into folder  $HOME/gitcopy
#  current directory must be the rootdir of the project
#  Xcode should not access the same project at this time
#
set -x
PROJECT_ROOT=.
COPY_DEST=$HOME/gitcopy
if [ -e *.xcodeproj ]
then
    git log
    echo "Which version ?"
    read x
    git checkout $x
    git checkout -b copyVersion
    cp -R $PROJECT_ROOT $COPY_DEST
    git stash
    git checkout master;
else
    echo "No xcode project root folder";
fi 

Я работаю над проектом Xcode 9.2, который имеет несколько зависимостей и дополнительный файл, которые были включены в него. В процессе очистки я нечаянно разрушил проект и не мог понять, что делать, чтобы запустить его, пока не нашел это решение. Я пошел в систему управления версиями в верхней строке меню и сначала отбросил все изменения. Затем я пошел к менеджеру управления версиями (второй слева справа от навигатора проекта и выделил фиксацию Я хотел, затем щелкнул правой кнопкой мыши и выбрал вариант проверки, который уже ввел номер фиксации, который я хотел, и он работал отлично. Шаг 1-отменить все изменения Шаг 2-Выберите фиксацию, к которой вы хотите вернуться. Шаг 3-щелкните правой кнопкой мыши и выберите Checkout