• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

git config 多用户配置 提交时 仓库显示正确的用户信息

在每一次git提交的时候,提交的记录里都会带上用户名及邮箱信息,这个信息不是在github或者gitlab上设置的,而是设置于我们的电脑中。

这在所有平台都使用同一套用户信息的时候是可以正常使用的,但有时我们需要在不同平台,甚至不同的项目中使用不同的用户信息(比如在公司gitlab使用真实姓名和公司邮箱,在github上使用网名和个人邮箱),那就需要不同的设置方案了。

下面分别介绍全局配置、按项目配置和按文件目录配置三种git配置方法。

全局配置

这是每次安装git后都会提示我们设置的,设置内容存于 ~/.gitconfig 文件中,格式如下:

[user]
    name = youName
    email = youEmail@example.com

当项目无特殊配置时,就会取这个文件中的设置为提交信息。

也可以命令来查询、修改全局配置

git config --global user.name                   // 查询全局用户名
git config --global user.name youName              // 修改全局用户名
git config --global user.email                   // 查询全局邮箱
git config --global user.email youEmail@example.com    // 修改全局邮箱

项目配置

在每个git项目下,可以针对这个项目进行单独设置,这部分设置存于项目根目录的 .ssh/config 文件中。

当有项目设置时,取项目设置的内容,没有时才取全局配置。

也可以命令来查询、修改项目配置, 其实就是全局配置的指令去掉--global而已:

git config user.name                   // 查询项目用户名
git config user.name youName             // 修改项目用户名
git config user.email                  // 查询项目邮箱
git config user.email youEmail@example.com   // 修改项目邮箱

按文件夹配置(多用户配置推荐)

用项目配置的方法虽然可以实现不同项目配置不同信息,但每个项目都配置一遍就太麻烦了,而且会经常出现漏配的情况,有把公司信息暴露到公共空间中风险。

使用 git 的 Conditional Includes 可以针对文件夹来配置,配置方法如下:

~/.gitconfig 添加如下代码:

## 如果是存放私人项目的文件夹,则采用另外的配置
[includeIf "gitdir:path/to/you/dir/"]
    path = ~/.gitconfig_self
  • gitdir:后面设置的是你想设置的文件夹目录,使用的是 glob 匹配模式,记得要以 / 结尾,否则不会生效(以 / 结尾,**会被自动添加上,比如 you/dir/  会变成  you/dir/**,这样才能生效到所有子文件夹)。

  • path:是新配置的文件路径,我这里和全局配置放在同个目录下,方便查找。


以上三种配置的优先级为:项目配置 > 文件夹配置 > 全局配置


多用户配置样例

如果有多个不同的文件夹需要设置,只需要继续添加配置即可,最终 ~/.gitconfig 中的配置会如下:

## 全局配置(默认配置)
[user]
    name = youName
    email = youEmail@example.com
    
## 私人项目
[includeIf "gitdir:path/to/you/dir/"]
    path = ~/.gitconfig_self
    
## 工作项目
[includeIf "gitdir:path/to/work/dir/"]
    path = ~/.gitconfig_work




0
0
下一篇:git 配置 多git地址 多用户 公钥认证登录配置

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。