Xcode で Objective C プロジェクトに取り組んでおり、ソース管理でコミットされた以前のバージョンに復元する必要があります。それ、どうやったら出来るの?コミットとプッシュの方法に関する情報は見つかりますが、古いバージョンに復元する方法に関する情報はありません。
7 に答える
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 つの編集ペインの間にタイムラインを表示します。ポインターを上に移動します。またはタイムラインを下に移動して、利用可能なバージョンを参照します。必要なバージョンが見つかったら、左または右のインジケーターの三角形をクリックして、対応するエディター ペインにそのバージョンを表示します。バージョン エディターでファイルの現在の作業コピーを編集できます。バージョン間の変更を元に戻したい場合は、古いバージョンからコードをコピーして、現在のバージョンに貼り付けることができます。」
最後の行でキーが明らかになります: コピー アンド ペースト。
別のフォルダーにコミットされたバージョンのプロジェクト全体の抽出物を取得する場合は、次のシェル スクリプトを試してください。
#!/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