1、为什么要创建用户签名

作为版本控制系统的客户端,每台客户机对版本库的所有提交操作,都需要注明操作者的身份。所以客户机首先需要进行自我身份的注册,即创建用户。Git要求“用户名和Email"这两样信息是必不可少的。

也就是说再让Git干活之前,必须得做一个最小配置,要把参与项目开发的工作人员的user.name以及user.email进行设置。

配置签名的作用:只是区分不同开发人员的身份。

2、为什么要在Git中配置这些信息

我们每一次的变更,在哪个时间点,是谁做出的变更,这两个信息是跟着某个变更的信息捆绑在一起。同时我们在做code review(代码审查)的时候,每一次的变更,如果带上了用户的email地址,那么评审的人员在平台上面指出了你哪个文件、哪个地方有问题之后。那我们Git的版本管控的web系统,它就自动的会把变更者的email取出来,然后发个邮件给变更的人。所以你变更的信息中的用户nameemail是必须配置起来的。

假使大家在用Git的时候如果忘了做这个配置,那后期你在Git做过变更提交的时候,他会有一长串的提示信息,告诉你必须做相关的配置。如下:

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
git config --global user.name "Your Name" to set your account's default identity.
Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'L@DESKTOP-T2AI2SU.(none)')

3、创建用户签名的方式

Git具有三种不同的方式创建用户签名,会产生三种不同作用域的用户。这三种创建方式的用户信息,会写到三个不同位置的配置文件中。这三种用户的创建均需要使用git config命令,只不过使用的选项不同。

这三个级别为localglobalsystem。说明如下:

  1. 项目级别/仓库级别(local)

    文件位置:该文件位于当前仓库下的.git目录中,文件名为config

    作用:是指对某一个Git仓库生效的。也就是说我们在使用Git管理文件系统的时候,它不是整个操作系统级别的管理。比如他是在某一个地方建了一个Git的仓库,相当于是独立的一个项目管控的一个区域。如果设置了local的话,Git所配置的这些信息(user.nameusere.mail),只会针对当前你工作的仓库有效。如果说切换到另外一个Git的仓库,那local范围的配置值就不再生效了。
  2. 用户级别/全局级别(global)

    文件位置:在计算机中系统盘的个人用户目录中,如:C:\Users\L\.gitconfig。注意,如果没有配置过用户级别级别的配置信息,是没有该文件的,配置一次就会自动生成的。

    作用:比如说我的电脑中有十个Git仓库,global级别的这些配置,对这十个仓库都是有效的,也就是对当前用户对本地的所有仓库都有效。所以有些时候,很可能为了提高效率,就可以用global范围进行配置用户签名,就没必要登录到一个一个的仓库里面做这种配置,所以工作当中global的方式是非常常用的。

    (即:表示授权一个用户对该计算机中所有的仓库都有权操作)
  3. 系统级别(system)

    文件位置:文件在本地Git的安装目录下,...\etc\gitconfig文件中。

    作用:表示只要登陆了该操作系统的用户,就对系统中的所有Git仓库有操作权。它是对系统所有登录的用户都有效,这个范围不常用(基本不用)。

提示:这三种创建用户签名的作用域由大到小依次是:系统用户,全局用户与本地库用户。在多种用户都进行了创建的前提下,小范围用户签名会覆盖大范围用户签名,即默认会以小范围用户来操作Git。

4、总结

一般在新的Git版本控制系统上,我们都需要先配置下自己的Git工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。

个人的用户名称和电子邮件地址,这两条配置很重要,每次Git提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容起被永久纳入版本历史记录。

每个机器都必须自报家门,就是你的签名(名字和Email地址)。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

『现学现忘』Git基础 — 10、配置Git用户签名说明的更多相关文章

  1. 『现学现忘』Docker基础 — 10、Docker的安装

    目录 1.前提 2.通过yum安装Docker (1)更新yum包 (2)移除旧的Docker版本 (3)安装必须的软件包 (4)设置稳定yum源仓库 (5)更新yum软件包索引 (6)开始安装Doc ...

  2. 『学了就忘』Linux基础 — 10、VMware虚拟机中克隆的使用

    目录 1.什么是克隆 2.克隆的两种类型 (1)完整克隆 (2)链接克隆 3.克隆操作 步骤一:克隆虚拟机 步骤二:进行克隆导向 3.快照与克隆的区别 4.镜像的管理 快照和克隆是VMware中两个非 ...

  3. 『现学现忘』Git基础 — 11、配置Git用户签名的方式

    目录 1.配置Git签名 (1)语法 (2)配置系统用户签名 (3)配置全局用户签名 (4)配置本地用户签名 2.查看三个配置文件的用户签名 (1)语法 (2)查看项目/仓库级别的配置文件信息(loc ...

  4. 『现学现忘』Git基础 — 12、Git用户签名(补充)

    目录 1.修改用户签名 2.取消用户签名 3.用户签名的优先级 4.总结本文用到的Git命令 1.修改用户签名 其实很简单,就是重新执行git config命令,换个用户名和邮箱地址就可以了,新配置的 ...

  5. Git 基础 —— 安装 配置 别名 对象

    Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 Git 安装 Git下载地址 ...

  6. 『现学现忘』Git基础 — 13、Git的基础操作

    目录 1.Git最基础的使用方式 (1)初始化本地版本库 (2)查看文件的状态 (3)把文件添加到暂存区 (4)把暂存区的内容提交到本地版本库 2.总结本文用到的Git命令 1.Git最基础的使用方式 ...

  7. 『现学现忘』Git基础 — 18、Git对象的总结

    目录 1.Git操作最基本的流程 2.工作目录中文件的状态 3.Git效率说明 提示:前面三篇文章已经分别的对blob对象.tree对象.commit对象进行了详细的说明,这篇文章我们总结一下,Git ...

  8. 『现学现忘』Git基础 — 21、git diff命令

    目录 1.git diff 命令说明 2.比较工作区与暂存区中文件的差别 3.比较暂存区与本地库中文件的差别 4.总结git diff命令常见用法 5.总结 1.git diff 命令说明 在comm ...

  9. 『现学现忘』Git基础 — 22、Git中文件重命名

    目录 1.用学过的命令进行文件重命名 2.使用git mv命令进行文件重命名 我们这篇文章来说说在Git中如何进行文件重命名. 提示一下,下面所说明的是对已经被Git管理的文件进行重命名,未被Git追 ...

随机推荐

  1. BLHeli/ BLHeli_S开源无刷电调学习记录

    BLHeli的历史轨迹:BLHeli -> BLHeli_S -> BLHeli_32,我们重点学习BLHeli_S版本. 该代码支持常规的1-2ms脉冲宽度输入,以及Oneshot125 ...

  2. 【算法篇】Bitmap 算法

    首先,什么是Bitmap算法(位图算法)呢? 一:定义: Bit map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素.使用Bit为用来存储数据的单位, 可以大大节省存储空间. ...

  3. 如果一个表有一列定义为 TIMESTAMP,将发生什么?

    每当行被更改时,时间戳字段将获取当前时间戳. 列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况? 它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用. 怎样才 ...

  4. 名词解析-RPC

    什么是RPC RPC 的全称是 Remote Procedure Call 是一种进程间通信方式.它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程 ...

  5. idea中Git的配置和Github上推拉项目

    1.去官网下载Git,并且安装它.安装步骤较为简单,此处就不再赘述. 2.在idea中配置Git信息 Git路径就是你电脑中安装Git的位置,找到git.exe文件(正常情况下,idea都会自动给你匹 ...

  6. 详解Mysql事务隔离级别与锁机制

    一.概述 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能 就会导致我们说的脏写. 胀读和不可重复读.幻读这些问题. 这些问题的本质都是数据库的多事务并 ...

  7. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

    /etc/init.d/mysql startmysql 没有启动参考 https://blog.csdn.net/sirobot/

  8. Numpy实现多项式曲线拟合

    Numpy实现多项式曲线拟合 这里可以对比matlab中的拟合方式看看matlab拟合函数的三种方法,和第一种方式很像 问题定义:对于一堆数据点(x, y),能否只根据这些数据,找出一个函数,使得函数 ...

  9. Logistic 回归模型的参数估计为什么不能采用最小二乘法?

    logistic回归模型的参数估计问题,是可以用最小二乘方法的思想进行求解的,但和经典的(或者说用在经典线性回归的参数估计问题)最小二乘法不同,是用的是"迭代重加权最小二乘法"(I ...

  10. 所有用CSS3写的3D特效,都离不开这些知识

    起因 昨晚在做慕课网的十天精通CSS3课程,其中的综合练习是要做一个3D导航翻转的效果.非常高大上. 以往这些效果我都很不屑,觉得网上一大堆这些特效的代码,复制粘贴就好了,够快.但是现实工作中,其实自 ...