【问题标题】:Xcode 4 git integrationXcode 4 git 集成
【发布时间】:2013-07-15 02:01:44
【问题描述】:

嘿, 我现在使用 Xcode 4 几个星期了。来自 Xcode 3 并看到所有新功能真是太好了。我喜欢 git 集成。但我有一个和另一个问题。 我从本地 git 存储库开始的最新项目。一切正常,我做了多次提交。我想获得我的项目的旧版本。所以我尝试使用Pull。但只要我点击那个按钮,我就会收到以下消息:

The operation could not be performed because access to the repository "/Users/***/Desktop/TestClone" was denied.

Check your name and password and try again.

问题是,我没有在任何地方定义名称和密码。如何在我的项目中获取状态的副本? 结帐按钮总是灰色的,所以我不能点击那个。

任何帮助将不胜感激。 :-D

【问题讨论】:

    标签: git xcode4


    【解决方案1】:

    您不应使用 'pull...' 命令来“返回”(签出)旧版本的代码。

    'pull' 和 'push' 命令用于将本地存储库与“原始”远程存储库同步。此功能通常在您“克隆”原始远程存储库时使用,以便与其他程序员协调您的更改。

    如果您从头开始创建项目,您将没有任何远程存储库可供推送或拉取。

    回到最初的问题,据我所知,Xcode 4 不会让您在用户界面中签出旧提交,除非您为该提交创建了一个新分支。不过,您可以从命令行执行此操作。为此,请使用项目文件夹中的以下命令

    $ git log --format=oneline
    

    获取你想去的提交的哈希码,然后使用:

    $ git checkout desired-hash-code
    

    签出该特定版本。在那里,您可以进行测试、更改,并可能创建一个新分支。如果您在未创建新分支的情况下进行提交,您将丢失当前分支中较新的提交。如果您想在对旧版本执行一些测试后返回最新提交,请使用:

    $ git checkout master
    

    再次注意,如果您在不创建新分支的情况下从旧代码版本执行新提交,这将不起作用,因为当前分支中的新提交会被取消引用。

    如果您是 Git 新手,我会阅读以下任何文档:

    我还要强调这两个:

    干杯。

    【讨论】:

    • 顺便说一句,你可以使用所有的 git 命令而不用在 Xcode 4 中关闭你的项目,因为它会很高兴地重新加载更改的文件。
    • 非常感谢您的解释。它真的帮助了我。我会尝试一下。是的,我是 git 新手。我以前使用过一次颠覆……我会阅读这些文件。 :-D
    • 那条评论没有出来……再试一次。这是我必须通过的列表才能获得我的旧提交: cd /Users/yourName/Desktop/yourApp/.git 然后因为我只能在旧的开发人员文件夹 /Developer\ 4.1/usr/bin/git log 中找到 git - -format=oneline 所以现在你看到了哈希......然后 /Developer\ 4.1/usr/bin/git reset 505bd4eb95ddedaf0a165b706d8ec556fc728574 (或者你的哈希是什么)
    • @hokkuk:您可以通过在 Xcode -> 首选项 -> 下载 -> 组件中安装“命令行工具”包来使“git”在系统级别可用。
    【解决方案2】:

    如果您已经创建了分支,您可以使用 Xcode 中管理器的 Repositories 选项卡恢复到分支点。方法如下:

    1. 在 Xcode 中,通过转到 Window 菜单->Organizer 或按键盘快捷键 Shift+Cmd+2 打开管理器
    2. 单击顶部工具栏上的存储库视图
    3. 在右侧导航窗格中,单击相应项目的工作目录(它将有一个蓝色文件夹图标)
    4. 在管理器窗口的左下方,单击切换分支按钮。
    5. 将出现一个弹出窗口,让您选择要使用的分支;选择所需的分支,点击确定,Xcode 会将所有文件同步到该分支。

    另外,请参阅 https://developer.apple.com/library/mac/#recipes/xcode_help-repositories_organizer/articles/SwitchingBranches.html 获取视频指南

    【讨论】:

      【解决方案3】:

      我认为问题是您在项目打开的情况下更新项目文件。您可能必须关闭项目或退出 Xcode,才能使用命令行或 DTerm(而不是在 Xcode 中)签出项目的旧版本。

      【讨论】:

      • 感谢您的回答。我真的不习惯 git。这是我第一次尝试使用它。你能告诉我如何用命令行签出一个项目吗?那很好啊。 :-D