我知道有很多像我这样的Git问题,我可以向你保证,我一直在抓网并尝试所有解决方案,以至于我需要发布自己的问题。
一般信息:
操作系统:Windows 7
Git版本:1.9.0.msysgit.0
ssh版本:OpenSSH_4.6p1,OpenSSL 0.9.8e 2007年2月23日
Git错误消息:
E:\git-projects\project-psl-v3>git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.
In Git 2.0, Git will default to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
ssh: bitbucket.org: no address associated with name
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
所以问题:
如何解决此问题并推送到远程存储库?
我没有在PC上更改任何内容(可能是Windows更新?)
我可以在本地提交,我有正确的ssh密钥。
我已尝试克隆另一个回购,同样的错误信息
我有正确的特权
我也通过https尝试了同样的错误信息
我重新安装了ssh和git,同样的错误信息
我也把我的dns改为4.2.2.1和8.8.8.8,同样的错误信息
我的网络选项也没有代理。
关于解决这个问题的任何其他想法将不胜感激
提前干杯,
里斯
答案 0 :(得分:4)
我有相同的消息,并在命令行上将我的设置更改为
git config --global push.default current
...所以它总是使用我当前的分支作为默认推送。
在您的存储库中,您可以执行git config -l
来概述存储库的设置。这将显示所有设置:系统,全局和项目范围。
关于SSH:您是否有可能需要在名为" bitbucket.org"的ssh-config中设置ssh快捷方式。所以你可以在你的命令行上发出ssh bitbucket.org
命令?我在网上搜索了一些关于" ssh配置文件"
查看本手册以获取SSH部件:https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git
答案 1 :(得分:1)
SSH不与DNS通信。我研究了这个,Atlasssian网站上的论坛没有提供这个或解决方法。 SSH设置页面是关键对,而不是DNS。 RhysBlackberry以上评论有效;将bitbucket.org
替换为IP地址。以下示例假定remote名为origin
。使用ping
验证连接并获取IP。
>ping -n 1 bitbucket.org
Pinging bitbucket.org [131.103.20.168] with 32 bytes of data:
Reply from 131.103.20.168: bytes=32 time=109ms TTL=128
>git config remote.origin.url
git@bitbucket.org:myuser/myrepo.git
要一次使用作为变通方法,请使用IP而不是主机名将URL作为存储库值传递:
>git push git@131.103.20.169:myuser/myrepo.git
或者,要对本地存储库进行配置更改,请更新配置值:
>git config remote.origin.url git@131.103.20.169:myuser/myrepo.git
使用硬编码IP并非最佳做法,因为bitbucket.org可能会更改其IP。
答案 2 :(得分:1)
听起来很奇怪,重新启动计算机的工作就像我认为是由于我的计算机异常关闭引起的。
答案 3 :(得分:0)
重新配置远程 url,它可能会开始正常工作
git remote set-url origin <insert existing-url>
这对我有用。
供参考:https://docs.github.com/en/github/using-git/changing-a-remotes-url
答案 4 :(得分:-1)
正如此处的一些评论所述,当您遇到此类问题时,SSH配置文件的内容可能非常重要。您可以在Linux / Mac上的~/.ssh/config
和Windows上的%USERPROFILE%\.ssh\config
找到配置文件(假设您使用OpenSSH作为您的客户端;如果使用PuTTY,它有自己的配置文件,主要是同样的事情,你只需要单独启动PuTTY即可看到它们 - 我不会单独介绍它们
如果此配置文件中有bitbucket.org
条目,则需要确保其所有指令保持正确。例如,此条目将导致DNS问题,就像您所见,只有SSH(ping可以正常工作):
Host bitbucket.org
HostName bitbocket.org
此主机下的任何其他错误设置都可能导致其他问题;例如,即使您的默认密钥现在正确,过时的IdentityFile
条目也可能导致密钥登录失败,错误的端口条目将导致一般连接超时问题。
每当您遇到与ssh
特别相关的连接或身份验证问题,并且其他人没有问题时,最可能的罪魁祸首就是您的ssh配置文件。
答案 5 :(得分:-4)
尝试重新启动您的互联网设备(调制解调器)。它对我有用。