我能够通过 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
我刚刚遇到了同样的问题,只是弄清楚是什么原因。
Github 似乎只支持 ssh 方式来读写 repo,虽然 https 方式也显示“读写”。
因此,您需要将 PC 上的 repo 配置更改为 ssh 方式:
.git/config
url=
[remote "origin"]
url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git
url=git@github.com/derekerdmann/lunch_call.git
@
ssh://git
config
git push origin master