赞
踩
由于最近自己搭建了一个GITLAB服务器,为了测试权限。所以会涉及到使用不用的用户进行git commit 和git push 操作。
通过百度搜索以后,发现绝大部分给的答案是:
git config --global user.name "xxx"
git config --global user.email "xxx"
通过实验以后发现。这种方式并不能完全切换用户。这样的方式只会影响到git commit的时候的用户。 对于git push时候用到的用户是完全没有用的。
而且git config --global 这个命令也并不完全正确。 如果你的git本地路径有local配置信息,那么git config --global 这个命令对于git commit 时候的用户也起不到修改作用。
下面来分析一下问题原因:
正确的步骤:
步骤一: 更改git commit的时候用到的用户信息
git config --local user.name "xxx"
git config --local user.email "xxx"
git config --global user.name "xxx" //非必须执行
git config --global user.email "xxx" //非必须执行
后面的git config --global 两条命令不一定要执行,刚才的配置文件已经说明了优先级。
步骤二:更改git push的的时候用到的用户信息。
方式一:对于windows系统, 选择控制面板-》凭据管理器-》windows凭据,删除里面类似git相关的的用户信息。下图中以git打头的相关数据。 这样你在敲git push就会弹出对话框让你重新输入用户名和密码。 输入你要更改的用户名和密码就可以了哦。
方式二:修改你本地git仓库里面的config文件。目录位于 .git -》config 文件 。在url前面手动输入用户名和密码 格式为 http://或者https://username:userpassword@具体的仓库地址(这里不要写协议名称,就是http,htthps). 示例 https://test:testpasswd@gitlab.test.com/test.git
。
使用方式二, 就不用删除控制面板里面的用户凭证,但只会影响一个git仓库,不会影响全体git仓库。 方式一会影响所有git仓库。
使用方式二,如果用户密码有特殊字符,需要进行url编码。附常用符号编码
字符 | URL编码 |
(空格) | %20 |
" | %22 |
# | %23 |
% | %25 |
& | %26 |
( | %28 |
) | %29 |
+ | %2B |
, | %2C |
/ | %2F |
: | %3A |
; | %3B |
< | %3C |
= | %3D |
> | %3E |
? | %3F |
@ | %40 |
\ | %5C |
| | %7C |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。