【问题标题】:Bitbucket + XCode 4.2 + GitBitbucket + XCode 4.2 + Git
【发布时间】:2011-11-15 04:59:19
【问题描述】:

我一直在寻找使用 Bitbucket 和 XCode 的解决方案。

众所周知,XCode 4.2 带有 git 支持。 我已经创建了一个 bitbucket 帐户,我想将我的更改推送到我的存储库,

我已按照本教程进行操作 https://confluence.atlassian.com/display/BITBUCKET/Use+the+SSH+protocol+with+Bitbucket

但是,这是我面临的问题。 当我在 XCode 的 Organizer - Repositories 部分时,我会转到我的 remotes 文件夹并创建一个存储库。

ssh://git@bitbucket.org/username/myrepo.git

但是,当我被要求输入名称和密码时,我提供的用户名和密码失败了。我也尝试过使用 git 作为用户,但没有运气。

更新:

我创建了一个 ~/.ssh/config 文件,其中我为 bitbucket 添加了特定配置。

Host bitbucket.org
HostName bitbucket.org
IdentityFile ~/.ssh/bitbucket
User username

我已经用 ssh -T git@bitbucket.org 对其进行了测试 并且它有效,它通过了身份验证。

但是,当我使用 XCode 进行测试时,出现以下错误。 "身份验证失败,因为名称或密码不正确。"

我知道我在这里遗漏了一些东西。

更新 2:

我已经设法解决了这个问题,但只能通过命令行,而不是 XCode。 我稍后会发布我的解决方案,但如果你有办法从 XCode 中做到这一点,请随意

谢谢

【问题讨论】:

    标签: xcode git xcode4.2 bitbucket


    【解决方案1】:

    它使用 HTTPS URI 对我有用,但我需要从中删除我的用户名。例如更改:

    https://username@bitbucket.org/username/myrepo.git

    https://bitbucket.org/username/myrepo.git

    然后在出现提示时提供您的用户名和密码。

    【讨论】:

    • 我的默认值是 ssh://git@bitbucket.... 我不得不将其更改为 https : // bitbucket... 感谢您的帮助
    【解决方案2】:

    删除用户名对我不起作用。但是我可以通过将这样的密码添加到 URL 来解决问题:

    https://username:password@bitbucket.org/username/myrepo.git

    【讨论】:

    • 这对我也有用,但我想知道它是否安全。我怀疑 Xcode 现在将我的密码以纯文本形式存储在某处。
    • 我用密码保护mac:)
    【解决方案3】:

    我能够通过使用 https URL 并在出现提示时输入我的 bitbucket 用户名和密码来使用 XCode UI。

    【讨论】:

      【解决方案4】:

      iOS 9.2、Xcode 7.2、ARC 启用

      似乎每次我开始一个新的 Xcode 项目时,我都必须爬回这篇文章和其他喜欢它的人,以整理一个解决方案来为新项目设置我的 *.git 存储库。我对这个答案的目标是更新和编译一个完整的解决方案。感谢所有原始贡献者,尤其是“台车”。

      如需非常详尽的描述,请参考此链接:http://www.appcoda.com/git-source-control-in-xcode/

      1.像往常一样创建新的 Xcode 项目,但请确保启用源代码管理,如下所示:

      如果你没有这样做,那么在项目已经创建后去这里看看如何做:https://stackoverflow.com/a/17790306/4018041

      2。从顶部工具栏中选择源代码管理->“当前分支”->配置“您的项目名称”,如下所示:

      3.从配置菜单选项卡中选择遥控器,点击“+”号并选择“添加遥控器”,如下所示:

      4.系统将提示您输入存储库名称并输入存储库的地址,如下所示:

      您可以使用此处提供的“手推车”说明:https://stackoverflow.com/a/9271409/4018041

      https://bitbucket.org/username/myrepo.git
      

      在上面的示例中,“myrepo”是 bitbucket.org 上存储库的名称;但在本地,您可以指定任何您想要的名称,默认名称为“origin”,如下图所示。

      5.输入您用于访问 bitbucket.org 帐户的用户名和密码,如下所示:

      您的用户名很可能是您注册时使用的电子邮件。

      6.按下 OK 后,如果凭据被接受,那么您应该会收到一条绿色的复选标记消息。就是这样!

      在此之后,您可以进行源代码控制->将本地 *.git 推送到您的 bitbucket.org 存储库,该存储库在本地命名为“origin”(默认)。

      成功推送到 bitbucket.org 存储库后,将出现带有绿色复选标记的类似文本。

      注意:确保为项目提交初始更改,以便正确创建本地 *.git。

      希望这对某人有所帮助。干杯!

      【讨论】:

      • 您甚至可以通过在第 4 步中提供 SSH URL (git@bitbucket.org:username/myrepo.git) 来与 SSH 协议同步。如果启用了两步验证,这将很有用。跨度>
      • @drew.. 谢谢老兄,希望这能为您节省一些时间。
      【解决方案5】:

      这是一个完整答案的尝试……

      如果您没有使用 ssh-keygen,请创建一个 bitbucket 密钥。选择一个像样的名称,例如 bitbucket_rsa 假设您创建了一个 rsa 密钥。放入~/.ssh/

      创建后,添加:

      Host bitbucket.org  
      HostName bitbucket.org  
      IdentityFile ~/.ssh/<bitbucket key filename above>
      

      到你的 ~/.ssh/config。

      接下来,使用 Manage Account &gt; SSH Keys 工具将此密钥添加到 Bitbucket Web 界面。要将 public 键放到剪贴板上,请使用:

      $ pbcopy < ~/.ssh/<bitbucket key filename above>.pub
      

      最后,确保您使用的是 Bitbucket 提供的 ssh 地址而不是 https 的地址。这些看起来像:

      git@bitbucket.org:accountname/repositoryname.git
      

      并且可以通过标记为 HTTPS 的下拉菜单访问(当前位于右侧栏中)。

      Xcode(包括 Xcode 5)现在应该可以工作了,命令行中的 git 也可以。

      【讨论】:

        【解决方案6】:

        您可以在 XCode 中解决这个问题,而无需进入命令行。您的问题中的所有内容都是正确的,但您设置的 URL 错误。

        应该是:git@bitbucket.org:username/myrepo.git

        而不是你所拥有的:ssh://git@bitbucket.org/username/myrepo.git

        【讨论】:

        • SSH 在启用两步验证时很有用。
        【解决方案7】:

        您必须将生成的 SSH 密钥添加到您的帐户。

        我使用 GitHub,但 BitBucket 基本上是它的克隆,因此适用相同的程序:

        cat ~/.ssh/id_rsa.pub | pbcopy
        

        现在尝试重新连接。

        【讨论】:

        • 感谢 Blender,但我已经将密钥粘贴到 bitbucket。但是,我注意到我有多个 ssh 密钥,所以我更新了我的问题。
        • 只是一个小建议,这里不要使用 cat。 pbcopy
        【解决方案8】:

        好的,看来我无法通过 XCode 客户端。

        但是,命令行是我设法推送更改的唯一方法,而 XCode 仅帮助我设置远程存储库并添加凭据。

        最后我需要做的是:

        $git push myrepo master
        

        我收到了一条成功消息:

        Counting objects: 7, done.
        Delta compression using up to 4 threads.
        Compressing objects: 100% (4/4), done.
        Writing objects: 100% (4/4), 360 bytes, done.
        Total 4 (delta 3), reused 0 (delta 0)
        remote: bb/acl: username is allowed. accepted payload.
        To ssh://git@bitbucket.org/username/myrepo.git
         123abcd..5a12a67  master -> master
        

        【讨论】:

          【解决方案9】:

          我知道已经有好几个答案了,但我似乎要等一个小时才能让它为我工作,所以也许我正在帮助那里的人。

          我的解决方案只是将我的用户名添加到https://bitbucket.org/USERNAME/PROJECT_NAME/admin/access 作为管理员,我通常可以使用我的用户名和密码在 Xcode 中输入 URL https://USERNAME@bitbucket.org/USERNAME/PROJECT_NAME.git

          重要提示:USERNAME 代表主持项目的用户,因此如果您正在处理同事的 repo,这将是他的用户名。

          希望这会有所帮助。

          【讨论】:

            【解决方案10】:

            通过将 git 指定为用户名(在 XCode UI 中),我能够让 XCode 接受并使用我之前使用 Bitbucket 设置的 SSH 密钥,并输入我的密码,我的 Bitbucket 用户名进入回购。

            在它开始工作之前不得不把它弄乱几次。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-03-11
              • 1970-01-01
              • 1970-01-01
              • 2012-03-09
              • 1970-01-01
              • 1970-01-01
              • 2020-03-20
              相关资源
              最近更新 更多