我是github上一个组织的所有者,只是创建了一个repo并试图推送但是我遇到了一个问题,即使我能用SSH就可以问我的用户名:
$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
6 files changed, 59 insertions(+)
create mode 100644 .gitignore
create mode 100644 main.js
create mode 100644 package.json
create mode 100644 readme.markdown
create mode 100644 views/index.ejs
create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':
我做错了什么?这在我之前从未发生过,但我最近也升级到git 1.7.10.3。
答案 0 :(得分:568)
请勿使用HTTP代替
更改
https://github.com/WEMP/project-slideshow.git
到
git@github.com:WEMP/project-slideshow.git
您可以在.git/config
档案
答案 1 :(得分:49)
我有同样的问题,并想知道为什么用一个用https克隆的bitbucket repo没有发生。稍微调查一下,我发现BB repo的配置有一个包含我的用户名的URL。所以我手动编辑了GH repo的配置,就像这样,瞧,没有更多的用户名提示。我在Windows上。
修改your_repo_dir/.git/config
(请记住:隐藏.git
文件夹)
变化:
https://github.com/WEMP/project-slideshow.git
为:
https://*username*@github.com/WEMP/project-slideshow.git
保存文件。做一个git pull
来测试它。
执行此操作的正确方法可能是使用git bash命令编辑设置,但直接编辑文件似乎不是问题。
答案 2 :(得分:18)
以下是official answer:
如果Git每次尝试与GitHub交互时都会提示您输入用户名和密码,那么您可能正在使用存储库的HTTPS克隆URL。
使用an HTTPS remote URL有一些优点:它比SSH更容易设置,并且通常通过严格的防火墙和代理工作。但是,每次提取或推送存储库时,它还会提示您输入GitHub凭据。
您可以配置Git为您存储密码。如果您想对此进行设置,请阅读有关setting up password caching。
的所有信息
答案 3 :(得分:10)
附加说明:
如果你已经添加了一个遥控器($ git remote add origin ...)并且需要更改那个特定的遥控器,那么在重新添加新的和改进的repo之前先做一个远程删除($ git remote rm origin) URL(其中“origin”是远程仓库的名称)。
所以要使用原始示例:
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git
答案 4 :(得分:9)
改进@ Ianl的answer,
如果要禁用用户名和密码的提示,则可以按如下方式设置URL -
git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git
请注意,URL同时包含用户名和密码。此外,.git/config
文件应显示您当前的设置。
答案 5 :(得分:6)
我刚收到一封来自github.com管理员的电子邮件,说明如下:“我们通常建议人们使用HTTPS URL,除非他们有特定的理由使用SSH协议.HTTPS是安全的,更容易设置up,所以当创建一个新的存储库时我们默认为。“
密码提示确实接受了正常的github.com登录详细信息。有关如何设置密码缓存的教程可以在https://help.github.com/articles/set-up-git#password-caching找到。我按照教程中的步骤操作,它对我有用。
答案 6 :(得分:4)
如果您已启用双因素身份验证,那么您需要生成个人访问令牌并使用该令牌代替常规密码。更多信息:https://help.github.com/articles/creating-an-access-token-for-command-line-use/
答案 7 :(得分:4)
如果您使用的是HTTPS,请检查以确保您的网址正确无误。例如:
$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C
$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.
答案 8 :(得分:2)
因为您使用 HTTPS 方式。 HTTPS 要求您每次尝试推或拉时键入帐户访问权限,但那里也是一种方式,称为 SSH ,它可以让你告诉git,我通过我的帐户授予你这台电脑的权限,从不再问我任何用户访问权限。要使用它,您必须生成SSH 键并一次将其添加到您的Github帐户。为此,您可以按照以下步骤进行操作