草庐IT

git - 在 Xcode 4 中,如何将远程 GitHub 存储库添加到现有的本地项目?

coder 2023-06-23 原文

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 并尝试使用

File -> Source Control -> Push...



然后是 选择要将更改推送到的存储库。 将出现列出源远程存储库的对话框。有一个黄色指示器表示需要身份验证,这很好,因为我还没有能够输入我的 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,一个原始存储库已添加到 Organizer 的存储库浏览器中,并且我可以在 GitHub 上看到 master 分支,因此我知道凭据是正确的,而无需我更改任何内容。

有没有人首先从本地项目开始,找到一种在 GitHub 上使用 Xcode 4 的可靠方法?

如果我克隆了一个包含 Xcode 项目的现有 GitHub 存储库,请使用 Xcode 4 打开它,然后即使第一次推送似乎失败,第二次推送仍然有效。所以也许从头开始使用 Xcode 4 为我创建存储库并不是最好的模式(直到他们在更高版本的 Xcode 4 中改进 Git 工具)。

使用一种解决方法的更多详细信息进行编辑

此示例仅适用于您添加到 GitHub 存储库的第一个项目。因此,我认为您最好执行以下步骤,请记住,此解决方案中似乎仍然存在一些 Xcode“问题”。
  • 列表项
  • “欢迎使用 Xcode”对话框中的“连接到存储库”。
  • 使用 GitHub SSH URL 获取位置
  • 给它一个名字 (RepositoryName) 并克隆到一个目录
  • 即使下载了内容,第一次尝试似乎也失败了
  • 再试一次,它的工作原理。
  • 现在在 Organizer 窗口中定义了一个新的存储库,其来源设置为 GitHub 远程 SSH URL。
  • 在您刚刚克隆到的目录中创建一个新项目,但不要勾选“为此项目创建本地 git 存储库”选项。
  • 对本地 Git 存储库进行初始提交。
  • 尝试源代码管理 -> 推送,Xcode 4 失败并显示“操作无法执行,因为对存储库 RepositoryName 的访问被拒绝。检查用户名和密码'
  • 尝试 Source Control -> Push 和 Xcode 4 再次 pop 远程存储库对话框,但这次检测到一个名为 origin 的远程存储库。在它旁边有一个黄色的球和“需要身份验证”。
  • 再次单击“推送”会导致远程推送工作。

  • 我发现但尚未解决的一件事是,从 GitHub 返回的带有 checkin 哈希值的响应消息和任何消息似乎都在 Xcode 日志导航器中报告为推送失败,即使推送成功GitHub 很担心。

    其他人有更好的解决方案吗?

    最佳答案

    我想我找到了将现有项目推送到 GitHub 或任何其他远程存储库的 Xcode 方式!

    先决条件

  • 我假设您有一个由 Xcode 4 创建的项目 本地 git 存储库。
  • 您创建了一个空的远程 git 存储库(我在以下示例中将其称为 RemoteRepository)

  • 推送到远程
  • 在 Xcode 中打开管理器并转到存储库选项卡
  • 首先点击 Remote ,然后点击“添加 Remote ”

  • 输入远程名称和远程存储库的位置,然后单击创建

  • 然后选择您的项目并打开 File -> Source Control -> Push ...
  • 选择您的远程存储库并等待它可连接!在括号中查找 Create。

  • 现在您的旧项目已发布到 GitHub


  • 我希望它也适用于你!就我而言,它适用于 每个远程 git 存储库 .

    请联系我 twitter如果有什么不清楚或用不好的英语写的!

    关于git - 在 Xcode 4 中,如何将远程 GitHub 存储库添加到现有的本地项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5803768/

    有关git - 在 Xcode 4 中,如何将远程 GitHub 存储库添加到现有的本地项目?的更多相关文章

    1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

      我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

    2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

      总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

    3. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

      关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

    4. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

      当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

    5. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

      给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

    6. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

      我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

    7. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

      我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

    8. ruby - 如何指定 Rack 处理程序 - 2

      Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

    9. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

      在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

    10. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

      我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

    随机推荐