Xcode 4中的Git集成非常受欢迎,但在处理远程存储库时似乎有点不稳定。 为清楚起见,我使用的是OS X版本10.6.7和Xcode 4.0.2(4A2002a)。
如果我创建一个新的Xcode 4项目并接受创建本地Git存储库的选项,那么一切都很好。我可以在当地提交,这很棒。
当我想将新项目推送到GitHub时,我想添加一个远程存储库并将我的本地更改推送到GitHub。我可以在管理器窗口中将GitHub存储库添加到Xcode 4作为新的存储库,但是没有方法将其设置为我现有项目的远程存储库。
所以我转而使用终端中的git命令。
git remote add origin https://<username>@github.com/<organization>/<repository>.git
如果我回到Xcode 4并尝试使用
档案 - &gt;源控制 - &gt;推......
然后选择要更改的存储库。对话框,其中列出了 origin 远程存储库。有一个黄色指示灯表示需要身份验证,这很好,因为我还无法为HTTPS输入我的凭据。 但是,当我单击“推送”并尝试推送更改时,它会显示“由于访问存储库'来源'被拒绝,因此无法执行操作。”
然后会出现一个提示我输入用户名和密码的对话框,预先填写好,所以必须从本地存储库的配置中正确读取。
当我输入密码Xcode 4然后崩溃并出现以下错误
ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-303/Framework/Classes/SourceControl/IDESourceControlOperationInfo.m:59
Details: Message sent to invalidated object: <IDESourceControlPushOperationInfo, 0x200bd2a80>. Backtrace for invalidation:
(null)
Object: <IDESourceControlPushOperationInfo: 0x200bd2a80>
Method: -invalidate
Thread: <NSThread: 0x200020700>{name = (null), num = 1}
Hints: None
如果我重新启动Xcode, origin 存储库已添加到管理器中的存储库浏览器中,我可以在GitHub上看到主分支,因此我知道凭据是正确的,我没有更改任何内容。
有没有人找到一种可靠的方式将Xcode 4与GitHub一起使用,首先从本地项目开始?
如果我克隆一个包含Xcode项目的现有GitHub存储库,请使用Xcode 4打开它,然后即使第一个Push似乎失败,第二次推送也会起作用。因此,从Xcode 4的绝对划痕开始,为我创建存储库并不是最好的模式(直到他们在更高版本的Xcode 4中改进Git工具)。
此示例仅适用于您要添加到GitHub存储库的第一个项目。因此,我认为你最好通过以下步骤,记住在这个解决方案中似乎仍然存在一些Xcode'陷阱'。
我发现并且还没有成功解决的一件事是,GitHub的回复消息带有checkin哈希值,并且任何消息似乎都在Xcode Log导航器中报告为推送失败,即使推送成功就GitHub而言。
其他人有更好的解决方案吗?
答案 0 :(得分:89)
我想我找到了将现有项目推送到GitHub或任何其他远程存储库的Xcode方式!
在Xcode中打开 Organizer 并转到存储库标签
首先点击遥控器,然后点击“添加遥控器”
输入远程存储库的远程名称和位置,然后单击“创建”
然后选择您的项目并打开File -> Source Control -> Push ...
选择您的远程存储库并等待它可连接!在括号中查找创建。
现在您的旧项目已发布到GitHub
我希望它也适合你!在我的情况下,它适用于每个远程git存储库。
如果某些内容不清楚或写得不好,请与twitter联系!
答案 1 :(得分:2)
我使用ssh连接(看起来像git@github.com:<username>/<project>.git
)成功完成了这项工作。它基于SSH公钥对用户进行身份验证,您可以在命令行上生成 - 在“帮助”部分的github上有很多关于该公钥的文档。
答案 2 :(得分:2)
Xcode 6.2(可能是6.x)改变了一切。组织者中不再有“存储库”选项卡。以下是使用较新的Xcodes的方法。
要将具有本地git存储库的项目添加到GitHub,您就是这样做的:
完成。