我正在Xcode中开发一个Objective C项目,需要将其还原到之前在源代码控制中提交的某个版本。该如何操作?我可以找到有关提交和推送的信息,但没有关于恢复旧版本的信息。
我正在Xcode中开发一个Objective C项目,需要将其还原到之前在源代码控制中提交的某个版本。该如何操作?我可以找到有关提交和推送的信息,但没有关于恢复旧版本的信息。
在Xcode中无法一次性还原整个项目,但你可以通过终端来实现。只需进入项目文件夹并输入git log以查找所需的哈希值,然后输入git checkout [hash]即可。
比较文件版本以还原代码行 选择“视图” > “版本编辑器” > “显示比较视图”,可以比较储存在仓库中的文件版本。使用跳转条基于它们在仓库中的位置选择文件版本。每个跳转条控制其上方内容面板的选择。要显示一个版本,请浏览层次结构找到它,然后单击选择它。阴影区域表示不同版本之间的更改。 您可以使用版本时间轴基于其时间顺序选择文件版本。单击中间列中的时间轴查看器图标(../art/TimeLineIcon_2x.png)以显示两个编辑面板之间的时间轴。通过时间轴上下移动指针以浏览可用版本。找到所需版本后,单击左侧或右侧的指示三角形以在相应的编辑器面板中显示该版本。 您可以在版本编辑器中编辑当前的工作副本文件。如果您想还原版本之间的更改,则可以从旧版本中复制代码并粘贴到当前版本中。
最后一行揭示了关键:复制和粘贴。
在 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