由于最近自己搭建了一个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 时候的用户也起不到修改作用。

下面来分析一下问题原因:

  1. git config --global 这个命令只是改变git的全局配置文件。 实际上面有git 有三种配置文件, local 、global 、sysytem。 他们的优先级是local > global > system , 很显然如果你的本地git目录下面有local的配置,这条命令并不能改变你git commit 时候用到的用户名。
  2. git commitgit push 对于windows来说是实际用到的是两套用户信息。linux和mac应该也是,只是没有实验过。

正确的步骤:

步骤一: 更改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:http://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

git如何切换用户_git切换用户、多用户切换的正确方式 git commit和git push 切换用户...相关推荐

  1. git 移动分支指针_git 分支( branch ) 的基本使用

    分支( branches ) 是指在开发主线中分离出来,做进一步开发而不影响到原来主线. Git 存储的不是一系列的更改集( changeset ),而是一系列快照.当你执行一次 commit 时, ...

  2. git ssh创建分支_Git(2):在gitlab中创建开发用户,以及master分支的安全管理

    一.创建用户 1.创建管理gitlab的开发人员的用户 2.配置用户信息 3.将用户添加到java-daem组中 4.用户登录成功后,在用户界面为用户添加ssh认证 5.在linux主机中将maste ...

  3. su oracle : 只切换用户,而不切换环境;就是说切到oracle用户后,使用的依旧是root的环境。 su - oracle :同时切换用户和环境

    su oracle : 只切换用户,而不切换环境:就是说切到oracle用户后,使用的依旧是root的环境. su - oracle :同时切换用户和环境 su   oracle:不会执行oracle ...

  4. 电脑切换用户关闭计算机会怎样,电脑中的“睡眠、关机、注销、切换用户、待机、休眠”都什么意思?有什么区别...

    电脑中的"睡眠.关机.注销.切换用户.待机.休眠"都什么意思?有什么区别? (一)待机:待机模式主要用于节电,该功能使你可不需重新启动计算机就可返回工作状态.待机模式可关闭监视器和 ...

  5. git 切换分支_git 入门教程之分支总览

    分支就是一条独立的时间线,既有分支,必有主干,正如一棵树谈到树枝,必有树干一样的道理.我们先前对git 的全部操作默认都是在主干上进行的,这个主干也是一种特殊的分支,名为 master 分支. 无论是 ...

  6. python git切换分支_git命令之切换分支

    Git一般有很多分支,我们clone到本地的一般都是master分支,如何进行分支的切换呢?那么下面带大家简单的看看如何通过命令来切换: 1.查看远程仓库及本地的所有分支 命令:git branch ...

  7. Git分支 查看branch 创建 切换checkout 合并merge(先切回主分支) 删除branch -d 推送push

    Git分支 分支的概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN.如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时 ...

  8. Git stash 的用法,将暂存区的内容缓存并移除,解决切换分支前的内容缓存问题

    git stash 如果当前分支还有任务没有做完,也不想提交,但此时需要切换或者创建其它分支,就可以使用stash将当前分支的所有修改(包括暂存区)先储藏起来:然后就可以切换到其它分支 在其它分支工作 ...

  9. 服务器是多用户服务的计算机,Windows2008服务器创建多个远程登录用户的方法,添加新用户...

    和pc创建多用户的方法大致相同,不一样的地方就是服务器里创建的用户需要赋予远程登录的权限.下面我们说说创建的方法: 1.登录服务器,并右键点击计算机,点管理,打开服务器管理器. 2.展开服务器管理器左 ...

最新文章

  1. 0x13链表与邻接表之邻值查找
  2. Django的静态文件路径设置对比
  3. P6860-象棋与马【欧拉函数,杜教筛】
  4. Android 开源优秀 Library 推荐
  5. 会话技术(Cookie Session)
  6. 如何修改计算机无线mac地址,修改计算机mac地址_怎么修改mac地址
  7. 毕设日志——tensorboardX无法连接的问题
  8. 单片机之魂——定时器、中断
  9. tmadmin: command not found和tmadmin: error while loading shared libraries: libgpnet.so
  10. 群晖3617可以有几个网卡_Synology 群晖 DS1621+ 六盘位NAS 开箱拆解评测
  11. 挑战运筹学——单纯形法,大M法
  12. apk双开多开分身术的原理
  13. 阿里datav使用记录1
  14. Node.js的线程和进程*2014年4月的文章
  15. 数据结构大致包含以下几种存储结构:
  16. 保护理念下的森林公园游憩方式创新设计(转)
  17. 联想笔记本电脑w530更换电池的电芯并进行软件重置,不再提示更换电池
  18. 超实数与布尔巴基学派
  19. 高通平台手机开发之LCD
  20. Linux企业级服务之实现DNS子域服务器

热门文章

  1. jedis-2.4.1 中的JedisPoolConfig没MaxActive属性
  2. 简单地理解 Python 的装饰器
  3. 2维FFT算法实现——基于GPU的基2快速二维傅里叶变换
  4. 书籍:Python游戏开发 Game Development Using Python - 2019.pdf
  5. dubbo简易监控中心安装dubbo-monitor(三)
  6. Android Studio中Gradle使用详解
  7. C#开源文件实时监控工具TailTailUI
  8. Java_String
  9. Flex的动画效果与变换(1)
  10. RedHat Enterprise Linux Server 5 在VMware Workstation 6.5的详细安装过程(2)