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

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

Ответы

Ответ 1

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

Ответ 2

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

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

В последней строке отображается ключ: copy-and-paste.

Ответ 3

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

введите описание изображения здесь

Ответ 4

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

#!/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 

Ответ 5

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

  • Щелкните значок управления источником в разделе навигатора слева или перейдите в режим просмотра- > навигаторы- > Показать навигатор управления версиями.
  • Отобразится список всех фиксаций для выбранной ветки.
  • Щелкните правой кнопкой мыши нужную фиксацию и выберите "Checkout" commitID "

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

Ответ 6

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