考虑URL: https:// foo:password@example.com
上面示例中的用户名/密码部分是否符合此问题中定义的"URL参数" ?
我遵循了GitHub教程中的所有内容:https://help.github.com/articles/generating-ssh-keys
我在我的存储库目录中完成了所有命令.我成功完成了教程的结束并收到消息:"您好用户名!您已成功通过身份验证,但GitHub不提供shell访问权限."
但是,当我尝试执行诸如推送仍然请求我的用户名和密码之类的事情时.
我正在使用Visual Studio和GitHub扩展.我能够登录,然后克隆我的团队的存储库,然后成功地进行更改.
当我将更改推回到远程时,我会在屏幕上短暂显示一个空白命令提示符,然后输出窗口中出现以下错误:
推送到远程存储库时遇到错误:Git失败并发生致命错误.
致命:遇到AggregateException.发生了一个或多个错误.
错误:无法生成askpass:没有这样的文件或目录
致命:无法读取" https://github.com "的用户名:终端提示被禁用
编辑:通过命令行推送工作,通过GitHub桌面应用程序推送,只是不在此扩展名内.
任何想法为什么会这样?鉴于我已登录扩展程序,我无法确定为什么需要用户名.
我已经安装了GitHub for Windows和GitExtensions,并且在我的路径中有多个版本的git.exe.
C:\Users\Rajat\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\cmd\git.exe
C:\Users\Rajat\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\bin\git.exe
E:\cygwin\bin\git.exe
C:\Program Files (x86)\Git\cmd\git.exe
C:\Program Files (x86)\Git\bin\git.exe
Run Code Online (Sandbox Code Playgroud)
现在,当我git push origin master
使用最后三个中git.exe
的任何一个时,它会询问我的用户名.但Portable Git不会要求用户名.请参阅以下屏幕截图:
心形的角色只是^C
如此无视.
在这种情况下如何处理身份验证?最后,我希望最后三个Gits不要求授权.怎么可能?
我在GitHub的Git中找到了两个额外的文件,但我怀疑它们是否重要:
每当我拉/获取或推送时,我在VS 2017团队资源管理器中收到错误.
Git failed with a fatal error.
HttpRequestException encountered.
An error occurred while sending the request.
cannot spawn /C/Program Files/Git/mingw64/libexec/git-core/git-askpass.exe: No error
could not read Password for 'https://<myusername>@bitbucket.org': terminal prompts disabled.
Run Code Online (Sandbox Code Playgroud)
我试图通过指示来设置我的密码:
https://<myusername>:<mypassword>@bitbucket.org
Run Code Online (Sandbox Code Playgroud)
仍然没有修复.但是当我使用SourceTree时,它很好.
我该如何解决这个问题,以便能够再次使用VS Team Explorer进行拉/推?
我使用以下内容:
提前致谢.
我不久前在GitHub上设置了2 因素身份验证。因此,一旦我在命令行中工作并想推送到我的存储库。我输入了用户名和密码,但失败并出现如下错误
USERNAME@MYCOMPUTER:~/MyRepo$ git push
Username for 'https://github.com': GitHubUsername
Password for 'https://GitHubUsername@github.com': GitHubPassword
remote: Invalid username or password.
fatal: Authentication failed for '
https://github.com/GitHubUsername/MyRepo/'
Run Code Online (Sandbox Code Playgroud)
因此,我阅读了这篇文章并得到了解决方案,我必须生成个人访问令牌才能推送任何内容。很好,但我认为这是一个有点困难的过程,因为首先我不记得大量的令牌,其次在文本文件中存储访问密钥并不是一件安全的事情。
因此,如果有人能够提供一个简单的解决方案来推送到我的存储库而不禁用 2FA,那就太好了。- 谢谢!
Magit是使用Github的不错选择.当我想将我的提交推送到Github时,它总是询问我的用户名和密码.Emacs如何保存我的密码?
最好的祝福.
我使用 Nginx 托管了一个私有 git 服务器。我希望任何人都可以克隆到我的存储库(未经授权),但如果他们尝试推送提交,则需要授权。
我的Nginx配置如下:
server {
listen 443 ssl;
server_name git.example.com;
ssl_certificate /fullchain.pem;
ssl_certificate_key /privkey.pem;
location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|recieve)-pack) {
root /usr/share/nginx/git;
# --- incorrect solution ---
# if ($1 = git-upload-pack) {
# auth_basic "Restricted";
# auth_basic_user_file /usr/share/nginx/htpasswd;
# }
client_max_body_size 0;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT $realpath_root;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $uri;
fastcgi_param unix:/var/fcgiwrap.socket;
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,一个git push
请求发送git-receive-pack
到我的服务器。我的简单解决方案是$1
使用 if 语句捕获此后缀,但我很快发现这不是 ifs ( ifisevil )的正确用法。
对于我要完成的工作,是否有更合适的解决方案?
我试图在Aptana内部推进,但我得到以下错误.我已成功拉,但无法弄清楚为什么我的推动不起作用.
/home/jeni/apps/Aptana_Studio_3/plugins/com.aptana.git.core_3.0.0.1350339960/os/linux/askpass. tcl: 3: exec: wish: not found
error: unable to read askpass response from '/home/jeni/apps/Aptana_Studio_3/plugins/com.aptana.git.core_3.0.0.1350339960/os/linux/askpass.tcl'
fatal: could not read Username for 'https://github.com': No such device or address
Run Code Online (Sandbox Code Playgroud) 我在github(Mariogs37)上有一个帐户,我已经停止使用了.与此同时,我创建了一个我想开始使用的新人(bclayman).我在github上创建了一个repo并运行:
git remote add origin https://github.com/bclayman/SquashScraper.git
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误消息,然后我运行:
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误消息:
remote: Permission to bclayman/SquashScraper.git denied to Mariogs37.
fatal: unable to access 'https://github.com/bclayman/SquashScraper.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)
我搜索了类似的问题并发现了这个链接:
http://stackoverflow.com/questions/24019258/git-thinks-im-the-wrong-user
Run Code Online (Sandbox Code Playgroud)
我按照vonC的回答说明(这里:https://help.github.com/articles/generating-ssh-keys/#step-3-add-your-ssh-key-to-github ).在将我的SSH密钥添加到github的最后,我在终端中得到了这个:
Hi bclayman! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)
我重新尝试将我的本地仓库推送到github,但遇到了同样的错误.知道为什么它仍然认为我是Mariogs37(因此没有权限推送到bclayman拥有的github上的回购)?
谢谢,
bclayman