• 使用Git进行版本控制,不同的项目怎么设置不同的提交用户名和邮箱呢?


    1.全局设置用户名和邮箱

    因为平时除了开发公司项目还会写自己的项目或者去维护开源项目,一般情况下,公司会要求提交代码时使用自己的真名或者拼音和公司邮箱,以前就只会设置全局用户名或邮箱如下

    git config --global user.name "username"
    git config --global user.email "username@email.com"
    

    但是在维护非公司的项目时,肯定不能暴露自己的姓名和邮箱啊?所以我们面临这个问题:不同的项目怎么设置不同的提交用户名和邮箱呢?

    2.配置单个项目提交用户名和邮箱

    其实就是不直接使用全局配置的用户名和邮箱,而是对某个项目单独配置用户名和邮箱。在当前项目下打开Git命令行,配置如下

    git config user.name "username"
    git config user.email "username@email.com"
    

    之后可以打开 .git/config 文件看配置生效如下

    [user]
            name = username
            email = username@email.com
    

    3.批量配置项目的提交用户名和邮箱

    当有多个项目需要配置Git提交信息时,一个一个配置麻烦而且容易疏漏,那就可以使用git的includeIf配置一次性给多个项目配置提交用户名和邮箱,来实现在某文件夹下的所有git项目统一使用同一个git配置文件。

    1. 首先将个人维护的项目,统一放到同一个路径下。比如:D:\projects
      首先将个人维护的项目,统一放到同一个路径下
    2. 创建一个.gitconfig文件,配置信息:
    [user]
            name = username
            email = username@xxx.com
    
    1. 修改Git的用户配置文件 .gitconfig,这个配置文件路径一般都是 C:\Users\用户名\.gitconfig 。添加配置信息如下
    # 配置demo项目
    [includeIf "gitdir/i:~/projects/"]
            path = ~/.gitconfig
    

    配置后所有在 projects 这个路径下的项目的配置信息就直接使用 projects/.gitconfig 中的配置了。

    注:配置文件优先级及路径基本语法

    • Git支持多级配置,分别是system(系统级)、global(用户级)、local(项目级)和worktree(工作区级)
    • 配置优先级: worktree > local > global > system
    system系统级(安装路径/etc/gitconfig): 系统级配置文件,对系统中所有用户都普遍适用的配置。使用 git config --system读写的就是这个文件。
    
    global用户级(C:/Users/用户名/.gitconfig): 用户级配置文件,用户目录下的配置文件只适用于该用户。使用 git config --global读写的就是这个文件。
    
    local项目级(某仓库的本地路径/.git/config): 项目级配置文件,当前项目的 git仓库目录中的配置文件(也就是工作目录中的 .git/config 文件),这里的配置仅仅针对当前项目有效。使用 git config --local或 省略 local参数,读写的就是这个文件。
    
    worktree工作区级: 工作区级配置,此配置仅仅针对当前工作区有效。使用 git config --worktree进行配置。
    
    每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
    
    • 基本语法
    在2017年,git新发布的版本2.13.0包含了一个新的功能includeIf配置,可以把匹配的路径使用对应的配置用户名和邮箱;
    
    "条件类型:匹配模式" 是 includeIf 的条件;只有当条件成立时,才会包含 path 选项指定的配置文件;
    
    条件类型 和 匹配模式 用 : 分隔;
    
    条件类型 共有以下几种 gitdir、gitdir/i、onbranch;
    
    	gitdir、gitdir/i: 路径匹配模式,表示 如果 当前 git仓库的 .git 目录的位置 符合 路径匹配模式, 就加载对应的配置文件;(gitdir/i表示 匹配模式忽略大小写)
    	.git 目录的位置可能是 git 自动找到的 或是 $GIT_DIR 环境变量的值;
    	onbranch: 分支匹配模式, 表示 如果我们位于当前检出的分支名称 与 分支匹配模式 匹配的工作树中,就加载对应的配置文件;
    
    匹配模式 采用标准的 glob 通配符 再加上 表示任务路径的通配符 **;
    
    path 用于指定配置文件的路径;
    
    可以通过写多个 path 来表示包含多个配置文件。
    

    如有错漏之处,敬请指正。

  • 相关阅读:
    springcloud_2021.0.3学习笔记:nacos单机模式支持mysql
    箭头函数和回调函数
    Python 使用openpyxl处理Excel文件
    CVPR2022 底层视觉 | 图像处理
    2023年中国肠胃炎用药行业现状分析:随着老龄化进程明显加速,市场规模同比增长7%[图]
    基于JavaWeb的学生住宿管理系统
    矩阵的运算规则
    精力,而非时间是高效表现的基础
    一个匹配html标签的正则表达式
    【java学习】 面向对象编程+java购物车系统
  • 原文地址:https://www.cnblogs.com/LucasMeng/p/17205952.html