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 来表示包含多个配置文件。

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

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

  1. Git使用笔记一(关于如何设置密钥及提交)(Windows)

    如何设置密钥 ssh-keygen -t rsa或ssh-keygen -t rsa -C ‘邮箱’ (注意 1.-t前有一个空格:2.keygen是key generate的缩写:3.而后连续输入三 ...

  2. Git使用详细教程(2):配置用户名和邮箱

    首先,说下最常用的设置用户名和邮箱的命令 git config --global user.name 'xxx' //设置用户名 git config --global user.email 'xxx ...

  3. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  4. git用户名和邮箱配置

    1. 设置全局用户名和邮箱 git config --global user.name "xxx" git config --global user.email "xxx ...

  5. git 命令修改commit时的用户名和邮箱地址

    1.介绍 在git的用户名和邮箱是有一个仓库和全局之分的,在利用vs插件是也有显示:

  6. Git分布式版本控制教程

    Git分布式版本控制Git 安装配置Linux&Unix平台 Debian/Ubuntu $ apt-get install git Fedora $ ) $ dnf and later) G ...

  7. git分布式版本控制玩法

    git分布式版本控制玩法 Git distributed version control play github的配置安装步骤:1.下载git bash(从http://www.git-scm.com ...

  8. git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用

    1.git常用命令 查看命令: 1.git --help 查看git所有命令 2.git clone -help 查看git clone命令的细节 3.git config -l   查看当前所有配置 ...

  9. 使用git向github中添加项目并更新(备忘录)

    今天使用Git&github&ST3时,发现ST3不仅是git插件不能push成功,使用sublimegit插件也不行. 可能是没有掌握sublimegit的使用技巧,有待后续继续摸索 ...

  10. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

随机推荐

  1. 解决“chrome正受到自动测试软件的控制”信息栏显示问题

    在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...

  2. django学习:转载

    https://www.cnblogs.com/ginvip/p/6894690.html https://www.cnblogs.com/yangmv/p/5327477.html https:// ...

  3. 构建自动发现的Docker服务架构

    ------------恢复内容开始------------ 建立consul服务 在建立consul服务中,每个提供服务的节点(在Docker主机上)都要部署和运行consul的client,ser ...

  4. HCIA-ICT实战基础07-访问控制列表ACL进阶

    HCIA-ICT实战基础-访问控制列表ACL进阶 目录 二层ACL技术及配置 高级ACL的扩展使用方法及使用场景 1 二层ACL技术及配置 1.1 二层ACL概念 使用报文的以太网帧头来定义规则, 根 ...

  5. 5 RDD编程

    一.词频统计 1.读文本文件生成RDD lines 2.将一行一行的文本分割成单词 words flatmap() 3.全部转换为小写 lower() 4.去掉长度小于3的单词 filter() 5. ...

  6. 使用LitJson输出格式化json文件到本地

    百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...

  7. react+antd 导出excel文件(简单数据&多级表头)

    需求: 在基于react+antd进行开发的页面中,实现导出excel报表的功能 实际场景: 1.简单数据:单层表头+数据 2.复杂数据:多层表头+数据 实现方式: 1.简单数据 简单数据的导出使用了 ...

  8. 【Android HttpClient引入】感慨下自己看的Android教程有点老了

    教程看到使用HttpClient,发现没有继承该类. 原因是API23即在Android 6.0(API 23) 后,Google已经移除了Apache HttpClient 相关类,推荐使用Http ...

  9. 4组-Alpha冲刺-6/6

    一.基本情况 队名:摸鲨鱼小队 组长博客:https://www.cnblogs.com/smallgrape/p/15574385.html 小组人数:8人 二.冲刺概况汇报 组长:许雅萍 过去两天 ...

  10. [postman的使用]postman捕获https请求

    解决方法: 1.settings 2.SSL certificate verifivation设置为关闭