我能够通过HTTPS身份验证来克隆此repo的副本。我做了一些提交,想要推回到GitHub服务器。在Windows 7 x64上使用Cygwin。
C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
error: The requested URL returned error: 403 while accessing https://MichaelDrog
alis@github.com/derekerdmann/lunch_call.git/info/refs
fatal: HTTP request failed
还使用详细模式进行设置。我仍然感到困惑。
C:\cygwin\home\XPherior\Code\lunch_call>set GIT_CURL_VERBOSE=1
C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
* Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
CApath: none
* SSL connection using AES256-SHA
* Server certificate:
* subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
* start date: 2011-05-27 00:00:00 GMT
* expire date: 2013-07-29 12:00:00 GMT
* subjectAltName: github.com matched
* issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
* SSL certificate verify ok.
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
< WWW-Authenticate: Basic realm="GitHub"
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host github.com left intact
* Issue another request to this URL: 'https://MichaelDrogalis@github.com/dereker
dmann/lunch_call.git/info/refs?service=git-receive-pack'
* Couldn't find host github.com in the _netrc file; using defaults
* Re-using existing connection! (#0) with host github.com
* Connected to github.com (207.97.227.239) port 443 (#0)
* 0x23cb740 is at send pipe head!
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
* Authentication problem. Ignoring this.
< WWW-Authenticate: Basic realm="GitHub"
* The requested URL returned error: 401
* Closing connection #0
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
* Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
CApath: none
* SSL re-using session ID
* SSL connection using AES256-SHA
* old SSL session ID is stale, removing
* Server certificate:
* subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
* start date: 2011-05-27 00:00:00 GMT
* expire date: 2013-07-29 12:00:00 GMT
* subjectAltName: github.com matched
* issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
* SSL certificate verify ok.
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache
* The requested URL returned error: 403
* Expire cleared
* Closing connection #0
error: The requested URL returned error: 403 while accessing https://MichaelDrog
alis@github.com/derekerdmann/lunch_call.git/info/refs
fatal: HTTP request failed
这些是我拥有的git和curl的版本:
C:\Users\XPherior>git --version
git version 1.7.4.msysgit.0
C:\Users\XPherior>curl --version
curl 7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp
smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz
答案 0 :(得分:789)
我遇到了同样的问题,只是想出了原因。
Github似乎只支持ssh方式来阅读和编写回购,尽管https方式也显示为“Read&amp; Write”。
因此,您需要在PC上更改您的repo配置:
.git/config
文件url=
[remote "origin"]
条目
url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git
更改为url=ssh://git@github.com/derekerdmann/lunch_call.git
。也就是说,将@
符号前的所有文本更改为ssh://git
config
文件并退出。现在您可以使用git push origin master
在GitHub上同步您的仓库答案 1 :(得分:392)
要确保能够使用https
协议登录,您应首先将身份验证凭据设置为git 远程URI :
git remote set-url origin https://yourusername@github.com/user/repo.git
然后在尝试git push
时会要求您输入密码。
实际上,这是http身份验证格式。您也可以设置密码:
https://youruser:password@github.com/user/repo.git
您应该知道,如果您这样做,您的github密码将以纯文本形式存储在.git目录中,这显然是不可取的。
答案 2 :(得分:106)
Sean's answer的一小部分内容。
您可以使用.git/config
命令,而不是手动编辑git remote set-url
文件。
在你的情况下应该是:
git remote set-url origin ssh://git@github.com/derekerdmann/lunch_call.git
我发现它比使用点文件更容易,更干净。
答案 3 :(得分:53)
编辑您的repo目录下的.git/config
文件
在url=
[remote "origin"]
条目
将其从url=https://github.com/rootux/ms-Dropdown.git
更改为
https://USERNAME@github.com/rootux/ms-Dropdown.git
其中USERNAME
是您的github用户名
答案 4 :(得分:42)
建议切换到SSH的其他答案忽略了这一点。支持HTTPS,但您必须使用GITHUB密码登录,而不是SSH密码(这就是给出了同样错误的错误)。
我遇到了同样的问题,但确保在终端密码提示下使用我的实际GitHub密码修复了解决方案,没有对配置进行任何更改,或者使用SSH。
重要的是要注意这一点,许多公共机构(例如我的学校)将阻止SSH,但允许HTTPS(这是我首先通过HTTPS开始克隆的唯一原因)。
希望能帮助其他人解决同样的问题...
答案 5 :(得分:23)
Mac OS X上的错误和分辨率相同。
在我在GitHub上创建一个新帐户并尝试推送
之前,一切正常$ git push -u origin master
得到了错误:
remote:对OLDUSER拒绝的NEWUSER / NEWREPO.git权限。致命:无法访问“https://github.com/NEWUSER/NEWREPO.git/&#39;:请求的网址返回错误:403
它应该通过为全局或当前仓库设置user.name来修复
$ git config –-global user.name NEWUSER
$ git config user.name NEWUSER
但事实并非如此。
我通过在密码部分下删除与Keychain Access应用程序相关联的OLDUSER来解决问题。然后push命令成功。
$ git push -u origin master
答案 6 :(得分:17)
我认为@dewwaters对旧版本的答案是正确的。 HTTPS URL需要具有用户名。我有git 1.7.0.4,git push origin master
甚至不会要求输入密码。
答案 7 :(得分:16)
这对我有用 - :
// Enter a value to test here
double a = ;
double b;
// Enter your code here
希望有所帮助
答案 8 :(得分:13)
升级你的git。 GitHub已在https://help.github.com/articles/error-the-requested-url-returned-error-403回答了这个问题。
答案 9 :(得分:10)
如果您使用的是Windows,有时可能会发生这种情况,因为Windows会在其自己的存储中存储外部存储库(在我们的示例中为github)的凭据。保存在那里的凭证可能与您现在需要的凭据不同。
因此,要避免此问题,只需在此存储中找到github并删除已保存的凭据。在此之后,推送git将请求您的凭据,并允许您推送。
答案 10 :(得分:9)
403代码是“禁止的”。服务器看到了您的请求并拒绝了它。您是否有权推送到该存储库?
答案 11 :(得分:9)
我实际上对此有一个非常简单的解决方法。我所做的只是在克隆存储库后以不同方式编辑git配置文件。您需要在默认的配置文件中编辑远程原始网址。它应该如下所示
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://*username*@github.com/*username*/*repository*.git
[branch "master"]
remote = origin
merge = refs/heads/master
答案 12 :(得分:7)
只需将您的用户名添加到网址中,如下所示: https://islam9@github.com/islam9/bootstrap-rtl
答案 13 :(得分:7)
在此之后,我们的“推送到Git”工作正常。
答案 14 :(得分:7)
想出来。我克隆了HTTPS。设置我的公共SSH密钥,通过SSH克隆,并通过SSH修复它。
答案 15 :(得分:4)
对于那些在使用 ssh (根据Xiao)或 http 网址时被拒绝 403 错误的用户 尝试这些命令
>git config --global --unset-all credential.helper
>git config --unset-all credential.helper
具有管理员权限
>git config --system --unset-all credential.helper
答案 16 :(得分:4)
我遇到了同样的错误,原因很愚蠢 - 我没有权限提交选定的存储库。我不知道我必须
答案 17 :(得分:3)
从
更改它url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git
到
url=ssh://git@github.com/derekerdmann/lunch_call.git
有效!
不要忘记“@”之前的“git”。
答案 18 :(得分:3)
执行此操作以进行临时修复
git push -u https://username:password@github.com/username/repo_name.git master
答案 19 :(得分:3)
上述答案均不适用于我的enterprise
GitHub帐户。按照以下步骤通过ssh密钥生成方式进行推送。
访问您的git帐户创建一个回购。
生成ssh密钥:
ssh-keygen -t rsa -C "your_email@example.com"
将文件〜/ .ssh / id_rsa.pub的内容复制到GitHub帐户设置中的SSH密钥。 测试SSH密钥:
ssh -T git@github.com
clone the repo:
git clone git://github.com/username/your-repository
现在cd到你的git clone文件夹并执行:
git remote set-url origin git@github.com:username/your-repository.git
现在尝试编辑文件(尝试自述文件),然后执行:
git add -A
git commit -am "my update msg"
git push -u origin master
更新:新的git版本似乎建议在创建新repo时不要有任何文件。因此,做一个空白的回购。
答案 20 :(得分:3)
对我有用的是什么:
我的回购是 fork ,仍然链接到父母回购。
git remote -v
会告诉你这是不是你的回购。
git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
允许您将其重新配置为您的仓库,然后允许您推送。
答案 21 :(得分:3)
将用户名添加为URL的一部分,并且发生此错误是因为git命令正在命中http而不是https。所以设置网址
Apache Drill 1.5.0
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
之后会提示您输入密码:
答案 22 :(得分:3)
对于任何好奇的人,我的mac机器vs lucid vm运行git 1.7.6 vs 1.7.0.4,并且完全相同的repo可以从我的mac(更新的git)推送但不是VM
相同的卷曲版本。也许一些较旧的git版本不支持https推送?
答案 23 :(得分:2)
Github有专门用于解决此错误的页面:
https://help.github.com/articles/https-cloning-errors
在我看来,使用新版本的git(1.8.5.2)解决了这个问题。
答案 24 :(得分:2)
任何未使用这些解决方案解决问题的人都遵循此线程:
“在同一台计算机上使用两个git帐户时会发生这种情况” https://stackoverflow.com/a/52046047/7861886
它具有 Windows 解决方案,并且我还为Mac用户添加了 Mac 解决方案。
答案 25 :(得分:2)
我想出了我自己对这个问题的看法。
问题不是将协议从https更改为ssl,而是 设置Github全球用户名和电子邮件! (我试图推动一个 私人仓库。
git config --global user.email "your_github_email_@email.com"
git config --global user.name "Your full name"
答案 26 :(得分:1)
对我有用的是从http改为ssh:
git remote rm origin
git remote add origin git@github.com:username/repoName.git
然后使用git remote -v
答案 27 :(得分:1)
以下是解决方案
对于Windows,您可以在此处找到密钥:
控制面板>用户帐户>凭据管理器> Windows凭据>通用凭据
下一步,删除Github键。
在Mac中
1-在Finder中,搜索“钥匙串访问”应用。
2在“钥匙串访问”中,搜索github.com。
3-找到github.com的“互联网密码”条目。
4-相应地编辑或删除条目。
答案 28 :(得分:1)
使用管理员权限尝试以下命令。这个命令解决了我的问题。希望它能解决您的问题。
git config --system --unset-all credential.helper
答案 29 :(得分:1)
我现在遇到了这个问题,原来我的服务器/etc/resolver.conf文件的IP地址不好。可能会帮助别人。
答案 30 :(得分:1)
这发生在我身上,因为我的同事意外地禁用了此存储库所分配的存储库。只是可以检查以确保原始的git(hub)repo实际上仍然存在。
答案 31 :(得分:1)
这可能是一个会计问题。上游(私人)回购所有者的Github帐户可能不是财务。我已经看到客户的信用卡过期了。
答案 32 :(得分:1)
唯一帮助我的是另一个问题的答案:
Git's famous "ERROR: Permission to .git denied to user"
总之,如果您和我一样使用Windows,请搜索“凭据管理器”并将其打开。在那里,你可以找到你的Git凭证。更改用户名(您必须将其更改为其他内容)。
您也可以在“控制面板” - “用户帐户” - “凭据管理器”下找到它。
答案 33 :(得分:1)
遇到同样的错误。无法访问403。 在我的案例中,这些答案都没有奏效。所以我尝试了以下,它的确有效。
代码已成功推送
!MACOS!
答案 34 :(得分:1)
就我而言,错误是由于我在存储库中没有权限而引起的。
答案 35 :(得分:1)
我有同样的问题。我的情况是:我在github上创建它之前在本地初始化了git repo,然后我尝试添加远程分支。我通过更改操作顺序解决了我的问题:在github网站上创建了一个repo,然后在本地进行了修改。但是他们不喜欢像我一样从命令行做所有事情。
答案 36 :(得分:1)
在gitbox app中将https更改为 http 后,它对我有用。
答案 37 :(得分:1)
有时设置没有问题,github服务器上存在一些问题。
https://status.github.com - github的当前状态:)
答案 38 :(得分:1)
使用ssh
代替https
进行克隆为我解决了这个问题
答案 39 :(得分:1)
在我的情况下,我收到了电子邮件ID的上述错误,github尚未验证。 GitHub发出了未经验证的电子邮件的警告。
验证电子邮件,然后推送给我工作。
答案 40 :(得分:0)
我不知道是否有人之前提到过此事。
我在使用Bitbucket时遇到了这个问题,我注意到了一件事。例如,如果您有
git push https://myrepo:myRepoPassword@bitbucket.org/myrepo/myrepo.git --all
在密码后面紧跟其中的@。看,如果您的密码以@结尾,您将有两个@@而不是一个。就我而言,是导致问题的密码。
答案 41 :(得分:0)
如果其他所有方法均失败。只要确保您没有存档您的项目即可。那是我的问题,将整个解决方案置于只读模式。
答案 42 :(得分:0)
当您未在电子邮件或github回购帐户中接受邀请链接时,可能会发生403错误(访问被拒绝)。
点击邀请链接后,您可以使用以下命令添加远程仓库:
git remote add <name> <url>
git push —set-upstream <repo_name> master
示例:
git remote add ProgrammingFoundationExam https://github.com/itprowhoami/ProgrammingFoundationExam.git
git push --set-upstream ProgrammingFoundationExam master
答案 43 :(得分:0)
import textwrap
def find_shortest_pattern(input_):
for len_ in range(1, int(len(input_) / 2) + 1):
patterns = textwrap.wrap(input_, len_)
if all(pattern == patterns[0] for pattern in patterns):
return patterns[0]
find_shortest_pattern("123123123")
答案 44 :(得分:0)
这是我发生的原因,因为存储库已禁用(存储库可由所有者禁用,或者如果该帐户未支付账单,Github可能会禁用该帐户的所有私有存储库)。< / p>
因此,您应该与存储库所有者联系,并通知他存储库已禁用。
答案 45 :(得分:0)
自 2020 年 7 月起,如果您使用 HTTPS,则必须使用 Token authentication to access GitHub。
因此您必须在您的个人资料设置页面中generate a access token并将其用作您的密码。
现在使用以下命令将您的用户名添加到存储库:
git remote set-url origin https://yourusername@github.com/user/repo.git
当您尝试推送时,它会询问您的密码。输入您新生成的令牌。
如果您在推送时遇到问题,请尝试将其分叉为个人存储库以调试任何身份验证问题。
答案 46 :(得分:0)
我尝试了所有答案,但没有成功。以下解决方案对我有所帮助。 如果您对存储库没有写访问权限或遇到致命的403错误,则可以通过派生克隆的项目,创建新分支并将该分支推送到存储库来轻松解决此问题。您将能够对克隆的项目发出请求请求,并让具有写许可权的人进行合并。
答案 47 :(得分:0)
我有同样的问题。以上都不适合我。问题是Github阻止了我的写权限。我已经更改了密码。现在我可以推送了。
答案 48 :(得分:0)
我遇到了同样的问题,并注意到我试图推送我的分支的存储库是 private
。因此,请尝试以下过程:
确保您有权访问该私有存储库
Fork
首先是存储库。您会注意到 repository URL
将包含您的 GitHub username
现在像这样克隆它 --> git clone https://github.com/your-github-username/example-repository.git
进入克隆的仓库文件夹 --> cd repository-directory
对克隆的存储库做任何您想做的事情。留在同一个克隆的存储库目录中,继续下一步
检查所有分支。这将列出可用的分支 --> git branch
立即创建您的分支 --> git checkout -b your-branch-name
运行 git branch
以检查您的分支是否已创建
现在运行这个命令 --> git add .
提交您的更改 --> git commit -m "your message"
推送你的分支 --> git push origin your-branch-name
检查 GitHub 站点以确保您的分支现在已推送
仅此而已
答案 49 :(得分:0)
将 git 存储库从私有变为公共。
答案 50 :(得分:0)
我使用的是 Mac 并收到致命错误:无法访问请求的 URL 返回错误:403。
我确实更改了我的 GitHub 帐户详细信息。
我必须为 GitHub 编辑我的钥匙串条目并将用户名更新为新用户名。您可以在 MAC 的顶部搜索中轻松找到 KeyChain。
答案 51 :(得分:0)
我遇到了这个问题,因为我有代理,我无法访问我的存储库
C:\Users\YourUser\.gitconfig
删除废话代理,它应该可以工作
然后再次尝试通过gitbash克隆
git clone http://********************
答案 52 :(得分:0)
请确保您具有足够的权限来推送到存储库 然后尝试运行这些命令
git config --global user.email youremail@domain.
git config --global user.name username
git config --global user.password yourpassword
希望这对某人有帮助
答案 53 :(得分:0)
为用户提供写访问权限。
提供访问权限后,将代码拉一次,然后再推送。
答案 54 :(得分:0)
尝试使用SSH密钥而不是HTTP创建您的来源。
如果您可以使用SSH密钥启动,则URL开头:
git@github.com:<YOUR REPO URL>
现在您可以添加,提交并推送到您相应的分支机构
答案 55 :(得分:0)
我遇到了同样的问题,并告诉我这个错误
远程:拒绝user2对user / repo.git的权限。
此问题是在Windows和Mac上,它存储在缓存中的Github关键路径。
要在Mac上修复此问题,只需
git credential-osxkeychain erase
控制台上将无提示。
然后只需正常进行一次推送,它就可以让您从Github重新输入用户名和密码。
git commit -m "First Commit"
对于窗口使用,请参见上面带有存储凭据的答案
答案 56 :(得分:0)
我以前以其他github用户(例如user1)登录。对于我的实际github帐户(例如user2),我能够在github中克隆一个新创建的存储库,但无法推送更改。
我尝试了上述所有答案,包括从Windows凭据管理器中删除了凭据,但没有任何效果。
最后,有效的方法是启动github Windows App。导航到“设置”->“选项”,然后确认已登录的用户为user1。单击从该用户注销,然后以所需用户身份登录(在本例中为user2
)答案 57 :(得分:0)
如果所有解决方案都不适合您,请快速阅读此答案(可能是您的情况):
对于像我这样的人,虽然经历了所有这些[出色的]回答,但仍然无法按承诺完成提交,但可能还有其他原因导致推送失败。
检查您的git存储库(无论它在哪里,GitHub,BitBucket等),以查看一切是否正常。就我而言,花了很多时间弄清楚我的问题是什么(甚至归咎于PyCharm的新版本!:)),我意识到自己做了一些愚蠢的事情,并且我的BitBucket存储库超出了2GB的限制,并自动变为只读回购,这就是为什么我无法推送任何新提交的原因。并且,这恰恰导致您收到相同的错误(403:无法访问URL。)
答案 58 :(得分:0)
要在推送错误期间解决此问题,您必须进入.git目录配置文件并更改给定的行:
precomposeunicode = true
[remote "origin"]
http://git@github.com:abc/xyz.git
将行更改为此
precomposeunicode = true
[remote "origin"]
ssh://git@github.com/abc/xyz.git
这解决了我的问题。
答案 59 :(得分:0)
更多原因可能是github.com上的电子邮件验证
只需登录github.com并检查是否没有消息,以确认您的电子邮件地址。如有必要,请确认。
答案 60 :(得分:0)
编辑repo目录下的.git / config文件
在[remote“origin”]部分下找到url =条目
将其从网址= https://github.com/rootux/ms-Dropdown.git更改为https://USERNAME@github.com/rootux/ms-Dropdown.git
其中USERNAME是您的github用户名
=&GT;这个解决方案对我有用。
答案 61 :(得分:0)
我和bitbucket有同样的问题,但我等了5分钟,然后我重试了,它运行良好。有时它可能是提供商的问题。
答案 62 :(得分:0)
如果您使用BitBucket,您的帐户可以进入只读模式,原因如下:
- 我们正在升级我们的存储细分,无法接受新数据。
- 我们正在推出不需要新写入的更改。
- 存储库的所有者需要升级其帐户以接受更多用户。
https://confluence.atlassian.com/display/BITBUCKET/Repositories+in+Read-Only+Mode
答案 63 :(得分:0)
另一个可能的原因是,您可能已经超出了他们的计划限制。
要解决此问题并恢复对回购的写入权限,您的帐户计划将需要升级,或者需要删除部分协作者。
答案 64 :(得分:-3)
对我有用的是重置门户网站上的BitBucket密码,然后再次尝试推送。