【问题标题】:GitKraken Push Error: SSH could not write dataGitKraken 推送错误:SSH 无法写入数据
【发布时间】:2018-10-14 18:49:45
【问题描述】:

尝试在 GitKraken 中推送更改时出现错误(如下所示)。


这是一个分叉的项目,过去我一直能够很好地推动。自上次以来发生的变化是我已经从远程分支(原始仓库)拉入并合并了一个更新。

有没有人遇到过这种情况?知道是什么阻止了推送吗?

谢谢

【问题讨论】:

  • 您是如何在 Gitkraken 中“从远程分支拉入并合并更新”的,您能展示一下您所做的详细步骤吗?此外,请检查您本地仓库中的命令 'git status' 和 git branch -vv
  • 在 git bash 中执行该命令时,它只说 master 落后了 2 个提交,因此需要推送本地文件。我已经从另一台机器推送了更改,它运行良好。现在一开始有问题的机器又能推了,奇怪。
  • 这种情况经常发生在我身上,我的一些存储库托管在 GitHub 上。我发现解决它的唯一方法是再次克隆存储库,手动将我的任何更改移动到文件夹中,然后我可以成功推送。几个月后它会再次破裂。这不会发生在每个 GitHub 存储库中,但会发生在少数几个。发生这种情况时,我无法使用 GitKraken、GitHub Desktop 或 Git CLI 推送。我已经尝试了 GitKraken 和 GitHub Desktop 的所有建议,但没有任何解决方法,但重新克隆始终有效。我今天要在回购上再做一次。

标签: git version-control gitkraken


【解决方案1】:

没有足够的代表来评论 @Sam 的帖子,但如果您在使用 GitKraken 的 SSH 和 AWS 代码提交方面遇到此问题,或者任何 SSH could not read/write data: 类型的错误,您可以强制 GitKraken 使用您的 AWS 用户名。

首先确保 gitkraken 已关闭,以防万一!

repo-root/.git/config 中找到 repo 的 git 文件。在你喜欢的文本编辑器中打开它,记事本就可以了!

在描述[remote "origin"] 的部分下,您应该会看到url = ...。确保显示为:url = ssh://YOUR_AWS_KEY@git-codecommit.us-west-2.amazonaws.com/v1/repos/YOUR_REPO_NAME

确保 URL 正确的一种简单方法是进入 codecommit,查看您的存储库,然后单击所需存储库旁边的“SSH”链接。它应该将该存储库的 SSH URL 复制到剪贴板。然后,只需在ssh://git-codecommit 之前添加您的“YOUR_AWS_KEY@”。

关键说明:确保 URL 以 ssh:// 开头,后跟您的 ssh 密钥 ID,然后是 @,然后确保 URL 不以 '.git' 结尾或 gitkraken 抛出一个“无效的存储库 URL”错误!

这里,“YOUR_AWS_KEY”是查看您的安全凭证时在您的 AWS IAM 中找到的“SSH 密钥 ID”。确保它是您当前计算机的 SSH 密钥!

【讨论】:

  • 你太棒了!!这对我帮助很大!
【解决方案2】:

似乎从另一台机器推送更改似乎通过提交“刷新”。其他机器成功推送更改,完成后,原机器也可以再次推送。

希望此解决方法可以在将来帮助某人。

【讨论】:

  • 您可以标记答案(点击答案左侧的√符号)。它也将使遇到类似问题的其他人受益。
  • 这对我有用——不过如果能理解真正的“为什么”就好了!
【解决方案3】:

所以如果这个答案对像我这样的其他人没有帮助,我想通了。

  1. 制作一个新的 ssh 密钥。
  2. https://www.ssh.com/ssh/putty/download 安装 PuTTY 工具
  3. 运行 PuTTYgen。
  4. 在“转换”选项卡下选择导入密钥,然后选择您的私有 ssh 密钥。
  5. 保存私钥。
  6. 在工具栏中(接近时钟)双击 Pageant。
  7. 添加我们刚刚制作的私钥。
  8. 在“preferences/Authentication/Bitbucket.org”下的 gitkraken 中连接到 bit bucket,然后按两个蓝色按钮,这会添加您的私有/公共 ssh 密钥(不是我们用 PuTTY 制作的那个,这是一个 putty 密钥)。
  9. 将公钥添加到您的 bitbucket 帐户。

你应该一切顺利!

【讨论】:

    【解决方案4】:

    我在将 SSH 与 AWS codecommit 和 GitKraken 一起使用时遇到了这个问题,我必须将用户名(IAM 中的 aws ssh 密钥 ID)添加到 SSH URL,如下所示:

    ssh://username@git-codecommit.eu-west-1.amazonaws.com/v1/wibble/

    克隆很好,因为它会提示输入用户名,但在尝试拉取或推送时没有提示,并且由于无法读取/写入错误而失败

    【讨论】:

      【解决方案5】:

      @Sam 和 @Jasper36 的答案适用于 GitKraken,但当您再次尝试从 cli 中提取时会打开一个新问题。

      1. 要允许 GitKraken 访问 git,请打开 my-project/.git/config 并将您的原始 url 修改为 url = ssh://username@git-codecommit.eu-west-1.amazonaws.com/v1/wibble/
      2. 要让您的终端再次访问 git,请运行以下命令:ssh-add ~/.ssh/{my-wibble-key_rsa}

      此示例用于 AWS codecommit 集成,但相同的主体将适用于与所有形式的 ssh 客户端的 ssh 连接。

      【讨论】:

        猜你喜欢
        • 2019-01-09
        • 2018-03-20
        • 2011-02-23
        • 2018-06-16
        • 2018-12-29
        • 2021-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多