情况就是这样。
我有一些git repositorys。假设存储库A和B都在gitlab.com上托管
我已经做过了
git config --global user.name "MyCorrectUserName"
我看,它有效:
git config --global --list
user.name=MyCorrectUserName
user.email=my@gitlabmail.com
credential.helper=/usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring
在存储库A中我做了一些提交等等,然后执行git push origin master
它要求输入我的密码(所以它知道我的用户名。太棒了!)
在存储库B中,我也这样做,并要求我输入用户名。好。
存储库A/.git/config
中的我看到了
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://MyCorrectUserName@gitlab.com/MyCorrectUserName/A.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
存储库B/.git/config
中的我看到了
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://gitlab.com/MyCorrectUserName/B
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[user]
name = MyCorrectUserName
我试过
编辑:
我尝试更改B存储库的配置,因为它在A(username@gitlab.com)中。它不起作用。
如何让git在任何地方都记住我的用户名?
答案 0 :(得分:1)
@Lassy在第一条评论中是对的。
这与配置中url
块的[remote "origin"]
参数有关。
在存储库 A 上,您的用户名位于网址中,而不在 B 上。 特别注意这里的url,你的A存储库显示“https:// MyCorrectUserName @ ..”,而你的B存储库则没有。
您可以通过以下方式更正存储库 B url参数:
git remote set-url origin https://MyCorrectUserName@gitlab.com/MyCorrectUserName/B
您还可以编辑存储库 B 的.git/config
文件,并按上述方式添加您的用户名。
此外,您可能更喜欢注册SSH密钥并使用ssh
协议代替http
,如here所述。由于使用密钥,您不必再处理用户名。
答案 1 :(得分:-2)
比使用git的全局用户名更好的解决方案是使用gnome-keyring来记住我的凭据。
我已经安装并设置了gnome-keyring以使用git(如此处所述https://stackoverflow.com/a/13390889/2867993)但它只在我与显示管理器(我现在使用lightdm)启动x会话时才开始工作startx