使用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配置文件。
- 首先将个人维护的项目,统一放到同一个路径下。比如:D:\projects

- 创建一个.gitconfig文件,配置信息:
[user]
name = username
email = username@xxx.com
- 修改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进行版本控制,不同的项目怎么设置不同的提交用户名和邮箱呢?的更多相关文章
- Git使用笔记一(关于如何设置密钥及提交)(Windows)
如何设置密钥 ssh-keygen -t rsa或ssh-keygen -t rsa -C ‘邮箱’ (注意 1.-t前有一个空格:2.keygen是key generate的缩写:3.而后连续输入三 ...
- Git使用详细教程(2):配置用户名和邮箱
首先,说下最常用的设置用户名和邮箱的命令 git config --global user.name 'xxx' //设置用户名 git config --global user.email 'xxx ...
- git 学习记录—— git 中的仓库、文件状态、修改和提交操作等
最近开始学习使用版本控制工具 git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...
- git用户名和邮箱配置
1. 设置全局用户名和邮箱 git config --global user.name "xxx" git config --global user.email "xxx ...
- git 命令修改commit时的用户名和邮箱地址
1.介绍 在git的用户名和邮箱是有一个仓库和全局之分的,在利用vs插件是也有显示:
- Git分布式版本控制教程
Git分布式版本控制Git 安装配置Linux&Unix平台 Debian/Ubuntu $ apt-get install git Fedora $ ) $ dnf and later) G ...
- git分布式版本控制玩法
git分布式版本控制玩法 Git distributed version control play github的配置安装步骤:1.下载git bash(从http://www.git-scm.com ...
- git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用
1.git常用命令 查看命令: 1.git --help 查看git所有命令 2.git clone -help 查看git clone命令的细节 3.git config -l 查看当前所有配置 ...
- 使用git向github中添加项目并更新(备忘录)
今天使用Git&github&ST3时,发现ST3不仅是git插件不能push成功,使用sublimegit插件也不行. 可能是没有掌握sublimegit的使用技巧,有待后续继续摸索 ...
- git管理和自动部署项目
当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...
随机推荐
- 解决“chrome正受到自动测试软件的控制”信息栏显示问题
在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...
- django学习:转载
https://www.cnblogs.com/ginvip/p/6894690.html https://www.cnblogs.com/yangmv/p/5327477.html https:// ...
- 构建自动发现的Docker服务架构
------------恢复内容开始------------ 建立consul服务 在建立consul服务中,每个提供服务的节点(在Docker主机上)都要部署和运行consul的client,ser ...
- HCIA-ICT实战基础07-访问控制列表ACL进阶
HCIA-ICT实战基础-访问控制列表ACL进阶 目录 二层ACL技术及配置 高级ACL的扩展使用方法及使用场景 1 二层ACL技术及配置 1.1 二层ACL概念 使用报文的以太网帧头来定义规则, 根 ...
- 5 RDD编程
一.词频统计 1.读文本文件生成RDD lines 2.将一行一行的文本分割成单词 words flatmap() 3.全部转换为小写 lower() 4.去掉长度小于3的单词 filter() 5. ...
- 使用LitJson输出格式化json文件到本地
百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...
- react+antd 导出excel文件(简单数据&多级表头)
需求: 在基于react+antd进行开发的页面中,实现导出excel报表的功能 实际场景: 1.简单数据:单层表头+数据 2.复杂数据:多层表头+数据 实现方式: 1.简单数据 简单数据的导出使用了 ...
- 【Android HttpClient引入】感慨下自己看的Android教程有点老了
教程看到使用HttpClient,发现没有继承该类. 原因是API23即在Android 6.0(API 23) 后,Google已经移除了Apache HttpClient 相关类,推荐使用Http ...
- 4组-Alpha冲刺-6/6
一.基本情况 队名:摸鲨鱼小队 组长博客:https://www.cnblogs.com/smallgrape/p/15574385.html 小组人数:8人 二.冲刺概况汇报 组长:许雅萍 过去两天 ...
- [postman的使用]postman捕获https请求
解决方法: 1.settings 2.SSL certificate verifivation设置为关闭