XcodeのObjective Cプロジェクトで作業していて、ソース管理でコミットされた以前のバージョンに復元する必要があります。それ、どうやったら出来るの?コミットとプッシュの方法に関する情報はありますが、古いバージョンに復元する方法に関する情報はありません。
Xcodeではプロジェクト全体を一度に元に戻すことはできませんが、ターミナルから元に戻すことはできます。プロジェクトのフォルダーにcdしてgit logと入力し、探しているハッシュを見つけて、git checkout [hash]を実行します。
https://developer.Apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/Save_and_Revert_Changes_to_Files/ManageChanges.html にあるAppleのドキュメントからの引用
コードの行を元に戻すためのファイルバージョンの比較[表示]> [バージョンエディター]> [比較ビューの表示]を選択して、リポジトリに保存されたファイルのバージョンを比較します。リポジトリ内の位置に基づいてファイルバージョンを選択するには、ジャンプバーを使用します。各ジャンプバーで選択を制御します上のコンテンツペインの場合。バージョンを表示するには、階層を参照して検索し、クリックして選択します。影付きの領域は、バージョン間の変更を示します。 「バージョンタイムラインを使用して、時系列に基づいてファイルバージョンを選択できます。中央の列にあるタイムラインビューアアイコン(../art/TimeLineIcon_2x.png)をクリックして、2つの編集ペイン間にタイムラインを表示します。ポインタを上に移動しますまたは、タイムラインを下に移動して、使用可能なバージョンを参照します。目的のバージョンが見つかったら、左または右のインジケーターの三角形をクリックして、対応するエディターペインにそのバージョンを表示します。ファイルの現在の作業用コピーをバージョンエディターで編集できます。バージョン間の変更を元に戻す場合は、古いバージョンからコードをコピーして、現在のバージョンに貼り付けることができます。」
最後の行はキーを明らかにします:コピーアンドペースト。
Xcode 9では、以前のバージョンをチェックアウトできます。
そこから直接ブランチを作成することもできます。これは、場合によってはさらに役立つことがあります。
別のフォルダーにあるコミット済みバージョンのプロジェクト全体の抽出を取得する場合は、次のシェルスクリプトを試してください。
#!/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プロジェクトに取り組んでいます。クリーンアップの過程で、私は不注意でプロジェクトを破棄し、この解決策が見つかるまで、プロジェクトを実行するために何をすべきか理解できませんでした。私はトップメニューバーのソース管理に行って、最初にすべての変更を破棄しました。次に、ソース管理マネージャーに移動し(2番目の左からプロジェクトナビゲーターの右へ)、必要なコミットを強調表示し、右クリックして、必要なコミット数をすでに入力したチェックアウトオプションを選択しました。 。ステップ1-すべての変更を破棄ステップ2-戻るコミットを選択ステップ3-右クリックして[チェックアウト]を選択