能否按主机为Git配置不同的提交身份信息?
解决Git分环境自动配置用户名和邮箱的方案
嘿,这个需求我太熟了——不用一个个仓库手动改配置,Git的**条件包含(conditional includes)**功能就是专门干这个的,一步搞定分环境的用户信息配置!
步骤1:设置全局默认配置(其他环境用)
先把你平时用的标准用户名和邮箱设为全局默认,这样非学校GitLab的仓库都会自动用这个配置:
git config --global user.name "你的标准用户名" git config --global user.email "你的标准邮箱@xxx.com"
步骤2:创建学校GitLab专属配置文件
在你的用户主目录(Windows是C:\Users\你的用户名,Mac/Linux是~)下新建一个配置文件,比如叫.gitconfig-school,内容如下:
[user] name = 你的真实姓名 email = 你的学生邮箱@你的学校域名.edu
步骤3:修改全局配置,添加条件规则
打开全局的.gitconfig文件(同样在用户主目录下),在末尾添加以下规则,让Git识别学校GitLab的仓库并加载专属配置:
如果你的学校GitLab用SSH地址(比如git@gitlab.yourschool.edu:xxx/xxx.git):
[includeIf "hasconfig:remote.*.url:git@gitlab.yourschool.edu:**"] path = ~/.gitconfig-school
如果用HTTPS地址(比如https://gitlab.yourschool.edu/xxx/xxx.git):
[includeIf "hasconfig:remote.*.url:https://gitlab.yourschool.edu/**"] path = ~/.gitconfig-school
验证是否生效
随便克隆一个学校GitLab的仓库,进入仓库目录后运行以下命令,看看输出是不是你的真实姓名和学生邮箱:
git config user.name git config user.email
再克隆一个其他平台(比如GitHub/Gitee)的仓库,同样运行命令,应该显示你设置的全局标准用户名和邮箱。
这样以后不管你新建多少学校GitLab的仓库,只要远程地址匹配,Git都会自动切换到对应的用户信息,完全不用手动逐个配置啦!
内容的提问来源于stack exchange,提问作者UnicornsOnLSD
相关产品推荐
相关产品推荐

