如何在Xcode中恢复以前版本的代码

问题描述 投票:15回答:6

我正在使用Xcode中的Objective C项目,需要还原到源代码管理中提交的先前版本。我怎么做?我可以找到有关如何提交和推送的信息,但没有关于如何恢复到旧版本的信息。

xcode commit restore
6个回答
25
投票

您无法在Xcode中立即恢复整个项目,但您可以从终端执行此操作;只需cd进入你的项目文件夹并输入git log来找到你正在寻找的哈希,然后执行git checkout [hash]。


12
投票

引自Apple在https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/Save_and_Revert_Changes_to_Files/ManageChanges.html的文档

“比较文件版本以恢复代码行选择视图>版本编辑器>显示比较视图以比较存储库中保存的文件的版本。使用跳转条根据它们在存储库中的位置选择文件版本。每个跳转栏控制选择对于上面的内容窗格。要显示版本,浏览层次结构以找到它,然后单击以选择它。阴影区域表示版本之间的更改。“ “您可以使用版本时间轴根据其时间顺序选择文件版本。单击中间列中的时间线查看器图标(../art/TimeLineIcon_2x.png)以显示两个编辑窗格之间的时间轴。向上移动指针或者通过时间线浏览可用的版本。当找到所需的版本时,单击左或右指示器三角形以在相应的编辑器窗格中显示该版本。您可以在版本编辑器中编辑该文件的当前工作副本如果要在版本之间还原更改,可以从旧版本复制代码并将其粘贴到当前版本中。“

最后一行显示了密钥:复制粘贴。


7
投票

在Xcode 9中,您可以签出任何以前的版本。

  1. 单击左侧导航器部分中的源控件图标,或转到view-> navigators-> Show source control navigator。
  2. 将显示所选分支的所有提交的列表。
  3. 右键单击所需的提交,然后选择“Checkout”commitID“'

您也可以直接从那里创建一个分支,在某些情况下可能更有用


3
投票

这是Xcode 8的一种视觉方法

enter image description here


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 

0
投票

我正在研究Xcode 9.2项目,该项目有几个依赖项和附加到其中的附加文件。在清理它的过程中,我无意中破坏了项目,无法弄清楚要做什么才能让它运行直到找到这个解决方案。我确实在顶部菜单栏上进行了源代码控制,并首先丢弃所有更改。然后我去了源控制管理器(从左边第二个项目导航器右侧突出显示我想要的提交然后右键单击并选择了Checkout选项,该选项已经输入了我想要的提交数量并且它完美地运行。步骤1 - 放弃所有更改步骤2 - 选择提交您要返回。步骤3 - 右键单击​​并选择结帐

© www.soinside.com 2019 - 2024. All rights reserved.