Xcode 4 git集成

4

嘿, 我已经使用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
3个回答

14

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

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

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

回到最初的问题,就我所知,除非您为该提交创建了一个新分支,否则Xcode 4在用户界面中将无法让您检出旧的提交。不过,您可以通过命令行完成此操作。为此,请在项目文件夹中使用以下命令

$ git log --format=oneline

要获取您想要跳转到的提交的哈希码,然后使用:

$ git checkout desired-hash-code

要检出特定版本。一旦到达那里,您可以进行测试,更改并可能创建一个新分支。如果您在不创建新分支的情况下提交,则会丢失当前分支中的较新提交。如果您想在对旧版本进行了一些测试后返回最新提交,则使用:

$ git checkout master

请注意,如果您从旧的代码版本进行新提交而没有创建新分支,则此方法将无法正常工作,因为当前分支中的新提交会被取消引用。

如果您是 Git 初学者,我建议阅读以下任何一篇文档:

我还想强调这两个链接:

祝好。


5
顺便提一下,在 Xcode 4 中,你可以在不关闭项目的情况下使用所有的 Git 命令,因为它能够快乐地重新加载已更改的文件。 - Ricardo Sanchez-Saez
非常感谢您的解释,对我很有帮助。我会尝试一下。是的,我是 Git 的新手。之前我用过 Subversion……我会阅读这些文档的。:-D - Sandro Meier
好的,那个注释没有出来...再试一次。这是我必须经历的列表以获取我的旧提交记录:cd /Users/yourName/Desktop/yourApp/.git,然后由于我只能在旧的开发者文件夹/Developer\ 4.1/usr/bin/git中找到git log --format=oneline,所以现在你可以看到哈希值了...然后/Developer\ 4.1/usr/bin/git reset 505bd4eb95ddedaf0a165b706d8ec556fc728574(或者你的哈希值是什么)。 - hokkuk
@hokkuk:你可以通过在Xcode -> 首选项 -> 下载 -> 组件中安装“命令行工具”软件包来使“git”在系统级别上可用。 - Ricardo Sanchez-Saez

1
如果您已经创建了分支,可以使用Xcode中组织器的存储库选项卡返回到分支点。以下是操作步骤:
  1. 从Xcode打开组织器,方法是转到“窗口”菜单->“组织器”,或按键盘快捷键Shift + Cmd + 2
  2. 单击顶部工具栏上的“存储库视图”
  3. 在右侧导航窗格中,单击适当项目的工作目录(它将具有蓝色文件夹图标)
  4. 在组织器窗口左下方,单击“切换分支”按钮。
  5. 将弹出一个窗口,允许您选择要使用的分支;选择所需的分支,单击“确定”,Xcode将同步所有文件到该分支。
此外,请查看 https://developer.apple.com/library/mac/#recipes/xcode_help-repositories_organizer/articles/SwitchingBranches.html 视频指南。

0

我认为问题在于您正在打开项目并更新项目文件。您可能需要关闭项目或退出Xcode,使用命令行或DTerm来检查旧版本的项目,而不是从Xcode中进行。


谢谢你的回答。我不太熟悉 Git,这是我第一次尝试使用它。你能告诉我如何使用命令行检出一个项目吗?那太好了。:-D - Sandro Meier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接