我正在使用Xcode中的Objective C项目,需要还原到源代码管理中提交的先前版本。我怎么做?我可以找到有关如何提交和推送的信息,但没有关于如何恢复到旧版本的信息。
答案 0 :(得分:25)
您无法在Xcode中立即恢复整个项目,但您可以从终端执行此操作;只需进入你项目的文件夹并输入git log来查找你正在寻找的哈希值,然后执行git checkout [ hash ]。
答案 1 :(得分:12)
“比较文件版本以恢复代码行 选择查看>版本编辑器>显示比较视图以比较存储库中保存的文件版本。使用跳转条根据文件库在存储库中的位置选择文件版本。每个跳转栏控制其上方内容窗格的选择。要显示版本,请浏览层次结构以查找它,然后单击以选择它。阴影区域表示版本之间的变化。“ “您可以使用版本时间轴根据其时间顺序选择文件版本。单击中间列中的时间线查看器图标(../art/TimeLineIcon_2x.png)以显示两个编辑窗格之间的时间轴。向上移动指针或者通过时间线浏览可用版本。当您找到所需的版本时,单击左侧或右侧的指示器三角形以在相应的编辑器窗格中显示该版本。 您可以在版本编辑器中编辑文件的当前工作副本。如果要在版本之间还原更改,可以从旧版本复制代码并将其粘贴到当前版本中。“
最后一行显示密钥:copy-and-paste。
答案 2 :(得分:7)
在Xcode 9中,您可以查看以前的任何版本。
您也可以直接从那里创建一个分支,在某些情况下可能更有用
答案 3 :(得分:3)
答案 4 :(得分:2)
如果您想在单独的文件夹中获取任何已提交版本的整个项目摘录,请尝试以下shell脚本:
#!/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 :(得分:0)
我正在研究Xcode 9.2项目,该项目有几个依赖项和已合并到其中的附加文件。在清理它的过程中,我无意中破坏了项目,无法弄清楚要做什么才能让它运行直到找到这个解决方案。 我确实在顶部菜单栏上进行了源代码控制,并首先丢弃所有更改。然后我去了源控制管理器(从左边第二个项目导航器右侧突出显示我想要的提交然后右键单击并选择了Checkout选项,该选项已经输入了我想要的提交数量并且它完美地运行。 第1步 - 放弃所有更改 第2步 - 选择提交您想要返回。 第3步 - 右键单击并选择Checkout
答案 6 :(得分:0)