我尝试了在Git中设置您的电子邮件的说明,即设置Git变量github.user和github.token,但这没有任何区别。 。
我不明白为什么会这样。
#1 楼
您需要设置一个ssh代理,您只需要对它进行一次身份验证。在SO上查看此答案以获取方法。评论
但是此解决方案适用于ssh系列短语。问题是git使用“ git push”,我认为它不会触发ssh-agent。 (我已经这样做了,所以我知道它不起作用。)
– picardo
2010-10-14 18:27
@picardo:我已经做到了,它的确起作用了。
–丹妮丝
2010-10-14 19:44
#2 楼
今天遇到了类似的问题:我把工作副本弄乱了,所以我决定重命名目录,然后再次从github克隆我的项目。但是这样做之后,我必须输入密码来执行任何拉/推请求,而不是像过去那样只输入一次密码。那是因为今天我使用https协议进行克隆该项目!要检查您正在使用的协议,只需运行
git config -l
,然后查看以“ remote.origin.url”开头的行。
要切换协议:
git config remote.origin.url git@github.com:the_repository_username/your_project.git
the_repository_username
和your_project
应该替换为适当的存储库名称和该存储库的所有者。如果您拥有存储库,则用户名将为您的用户名,否则为存储库所有者的用户名。评论
它为我工作。一件事是url不包含我的用户名,而是包含我在github上显示的回购地址:git@github.com:some-user / repo-name.git
– B七
2012-2-15在7:04
注意:Google带我来了这里。我将remote.origin.url设置为https方法,甚至没有注意到有https vs ssh方法。该URL帮助我看到了明显的内容:help.github.com/articles/…
–克里斯K
2012年6月17日下午3:31
有没有办法通过密码输入呢?
– zishe
2012年7月30日在20:58
对那些了解git的人有什么疑问:上面使用的git config remote.origin.url ...与git remote set-url origin ...之间有什么区别(或偏好)?
–达里恩
2013年1月9日18:47
我不知道如何删除这样的错误来源。答案是:git remote rm origin
–Vacilando
2013年4月7日14:56
#3 楼
如果您使用的是HTTPS而不是SSH,则可以按照以下步骤进行操作:使用
查找远程URL(remote.origin.url)
git config -l
感谢Sergio Morstabilini
,您的远程URL会像这样:https:// {USERNAME} @ github.com / {USERNAME} / {REPONAME} .git
执行此命令:
git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
评论
我的用户名本身包含@,对我不起作用。
–coding_idiot
2014年8月20日下午4:08
但是,如果没有(您不需要使用电子邮件),它就可以完美运行!谢谢。
–基拉
2014年10月16日19:33
如果您的用户名包含@,则需要对其进行URL编码。 meyerweb.com/eric/tools/dencoder
– Tim Bodeit
14-10-22在7:23
出于安全原因,您应该省略密码。
– zygimantus
2015年12月26日在17:14
注意,密码将以纯文本格式存储在.git / config文件中!
– Amro
16年1月13日在13:07
#4 楼
我更喜欢使用HTTPS,我发现它比设置ssh密钥更容易和更安全。使用HTTPS,您可以使用以下命令阻止git向github远程服务器询问用户名:
git config --global url."https://yourusername@github.com".insteadOf "https://github.com"
您至少可以降低git要求输入密码的频率:
git config --global credential.helper 'cache --timeout=28800'
28800表示8小时。在开始工作之初,我仅使用此设置输入一次密码。
之后,您将在
~/.gitconfig
中找到这些条目[url "https://yourusername@github.com"]
insteadOf = https://github.com
[credential]
helper = cache --timeout=28800
来源:
http://git-scm.com/docs/git-credential-cache
http://git-scm.com/docs/ git-config
#5 楼
为github设置ssh密钥时,如果不是默认密钥,则需要在~/.ssh/config
中添加一个部分Host *github.com
User git
IdentityFile ~/.ssh/github_id_rsa
#6 楼
另外,如果希望每次都提示您输入密码,但又不想输入用户名,则可以将远程服务器配置为使用用户名的HTTPS。像这样..git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name
此后,每次都会提示您输入密码,但不会提示您输入用户名。
这是我喜欢的方式,因为我喜欢在与世界分享之前被迫输入github密码。
#7 楼
如果您在Windows上使用HTTPS,请尝试使用Git凭据存储-它使用Windows凭据存储来保存您的名称和密码。Windows Credential Store for Git
This application is a small helper app designed to follow the
git credentials API as defined by the Git Documentation.
Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.
然后下次输入您的姓名和密码,它将为您记住它们。
评论
谢谢。该项目已重命名为Windows的Git-Credential-Manager-for。
– Michael S.
16年5月11日在15:16
#8 楼
如果您使用的是2因子身份验证,则情况会有所不同。由于在其他地方找不到很好的答案,因此我在这里贴上一个,以便以后可以找到它。如果您使用的是2因子身份验证,则可以指定用户名/密码事件活动-您的访问被拒绝。但是您可以使用应用程序访问令牌,并使用git的凭据帮助器为您缓存该令牌。以下是相关的链接:
设置命令行以使用2因子身份验证(搜索标题为“如何对命令行Git起作用的部分” ?“)
凭据缓存
我不记得我在哪里看到了,但是当您被问到您的用户名时-那就是您粘贴应用程序访问令牌的地方。然后将密码留空。在我的Mac上工作。
#9 楼
使用SSH要防止GitHub在推送时询问密码,理想情况下,您应该使用SSH(
git@github.com:...
)而不是HTTPS URL(https://github.com/...
),并将SSH密钥添加到GitHub帐户。请参阅:我应该使用哪个远程URL?凭据帮助程序
否则,如果您确实需要使用HTTPS,则可以缓存GitHub Git中的密码,您应该使用凭据助手来告诉Git每次与GitHub对话时都记住您的GitHub用户名和密码。
Mac:
git config --global credential.helper osxkeychain
(需要osxkeychain helper
),Windows:
git config --global credential.helper wincred
Linux和其他操作系统:
git config --global credential.helper cache
.netrc
另一种方法是在以下位置使用配置用户名/密码
~/.netrc
(在Windows上为_netrc
),例如machine github.com
login USERNAME
password PASSWORD
OAuth
使用OAuth令牌(个人API令牌)推送更改,例如
git push https://4UTHT0KEN@github.com/foo/bar
相关:
在GitHub上使用https://时是否可以跳过密码输入?
如何在终端钥匙串中在Linux上存储您的GitHub https密码?
配置Git客户端(例如Windows的GitHub)以不要求身份验证
#10 楼
另外,如果您使用的是Windows,则可以使用:$ git config --global credential.helper wincred
您只需要再登录一次,然后git就会记住。
#11 楼
询问用户名对我来说很烦人,但是询问密码很好,因为它可以确保您确实希望公开所做的更改...所以我只需将其添加到我的“ .gitconfig”
[url "https://myusername@github.com"]
insteadOf = https://github.com
#12 楼
如果您在Windows上,请使用Windows版Git Credential Manager。该项目包括:
在Windows Credential Store中保护密码存储
多因素身份验证对Visual Studio Team Services的支持
对GitHub的两因素身份验证支持
对Visual Studio Team Services和GitHub的个人访问令牌的生成和使用支持
对Visual Studio Team Services的非交互模式支持通过Azure目录
Team Foundation Server的Kerberos身份验证
用于构建代理优化的可选设置
只需下载最新版本并安装它。
如何使用
不用。当需要凭据时,它神奇地起作用。
#13 楼
这对我有用。使用以下语法执行命令。
git config remote.origin.url https://<<username>>@<<.git url>>
评论
您需要缓存密码:help.github.com/articles/set-up-git#password-caching@PiotrUsewicz旧链接不再起作用。新链接:docs.github.com/en/github/using-git / ...