使用不同级别的git config对应不同的远端仓库

一、必要的git config理论

1.1 参考博客

好好玩git:git-config: http://wxb.github.io/2016/11/03/%E5%A5%BD%E5%A5%BD%E7%8E%A9git%E4%B9%8Bgit-config.html

1.2 git config三个配置级别

system-系统级: 在git安装以后,git的默认配置项都在这里;
global-全局级:登录用户全局级别的git配置;
local -仓库级: 对不同的仓库进行自定义配置。
在这里插入图片描述
这三个级别配置的内容都是相同的,不同的是优先级;同样的配置信息的优先级是:local > global > system; 也就是说,针对同样的某个配置,如果同时存在在local和global中时,local中的配置将会覆盖global中的配置项的值,当然也会同样覆盖system中的配置项;这样做的好处是:既方便共用,又可以个性化自定义。遵循的理念是:对于所有用户都通用的配置项放在system中;对于每个独立的用户相对的共用项放在global;对于某个仓库特殊的配置放在local

二、巧妙地利用git config

2.1 global config

假设您的当前计算机账号中所有项目的远端都是您的github仓库,您的github仓库用户名/邮箱为:

Jake Weng at Github
[email protected]

那么您一定会在git bash中进行如下配置:

git config --global user.name "Jake Weng at Github"
git config --global user.email "[email protected]"

或在Tortoise Git - Settings - Git中配置:
在这里插入图片描述

2.2 local config覆盖global config

此时,您新建一个项目,并且将远端配置成了您的gitee仓库,但您的gitee用户名/邮箱为:

Jake Weng at Gitee
[email protected]

如果您仍然使用全局配置配置上述gitee用户名/邮箱,那么其他项目的用户名/邮箱也会随之变为gitee的。这样明显是违背初衷的,因为本机除了这个新建项目之外的用户名/邮箱都应该是github的。所以为了对此项目进行特殊处理,需要使用local config进行配置:

git config --local user.name "Jake Weng at Gitee"
git config --local user.email "[email protected]"

修改后再次打开Tortoise - Settings - Git,查看local和Effective(生效的) config,会发现生效的是local config中的gitee用户名/邮箱,这是因为local config将global config覆盖了。

2.3 local config继承global config

如果2.2中项目的远端仓库又从gitee切回了github,就意味着您又需要将gitee用户名/邮箱改为github用户名/邮箱。此时您可以使用Tortoise - Settings - Git - local,选中Name Email输入框右侧的勾选框,点击应用后,local config user name/email就继承global config user name/email了。
在这里插入图片描述
无论何时,您都可以通过查看Effective来确认最终生效的配置。

2.4 编辑.git/config文件

编辑隐藏文件夹.git下的config文件,也可以达到灵活配置local/global/system config的目的,本文对此还没有深入实践,后续如有使用会做补充。
在这里插入图片描述

发布了79 篇原创文章 · 获赞 322 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_15329947/article/details/90371795
今日推荐