『现学现忘』Git基础 — 12、Git用户签名(补充)
1、修改用户签名
其实很简单,就是重新执行git config命令,换个用户名和邮箱地址就可以了,新配置的内容会覆盖之前配置的内容,达到了用户签名的修改。
以系统用户为例:
# 查看系统级别的用户配置
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --system
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name=tang_s # 这里是tang_s
user.email=tang_s@126.com
# 修改系统用户配置
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --system user.name 'zhu_bj'
# 查看系统级别的用户配置
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --system
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name=zhu_bj # 这里是zhu_bj
user.email=tang_s@126.com
提示:
- 系统级别的配置对应的是所有操作系统的用户,全局配置对应的是单个系统用户对所有Git仓库的配置,本地配置是对单个Git仓库的配置。
- 所以综上所述,在一台计算机中,系统用户只能有一个,全局用户是每一个用户可以设置一个,本地用户可以设置多个(一个本地版本库对应一个)。
2、取消用户签名
语法:
git config --配置文件范围 --unset user.name
git config --配置文件范围 --unset user.email
示例:取消系统用户的用户名和邮箱设置:
# 取消系统用户的用户名和邮箱设置
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --system --unset user.name
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --system --unset user.email
# 查看系统级别的用户配置,可以看到没有系统用户的配置了。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --system
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
提示:全局用户同理,本地用户需要到仓库中执行命令,也是同理的。
3、用户签名的优先级
之前我们讲过执行git config命令有三个作用域,分别是local、global、system。
接下来,要探讨的是,这三个配置作用域的优先级。
(1)先查看本机Git用户签名配置
# 查看系统用户签名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --system
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
credential.helper=manager
user.name=tang_s
user.email=tang_s@126.com
# 查看全局用户签名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --global
user.name=sun_wk
user.email=sun_wk@126.com
# 查看本地用户签名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --list --local
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
user.name=sha_hs
user.email=sha_hs@126.com
可以看到:
- 系统用户签名:
tang_s - 全局用户签名:
sun_wk - 本地用户签名:
sha_hs
(2)创建一个文件,提交到本地版本库中。
1)在仓库中创建一个文本。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ touch test.java
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ ll
total 0
-rw-r--r-- 1 L 197121 0 4月 3 10:54 test.java
2)提交这个文本到本地Git仓库中。
# 1.查看工作目录和暂存区中文件的状态,
# 发现工作区中有一个test.java未被git管理
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.java
nothing added to commit but untracked files present (use "git add" to track)
# 2.把test.java添加到暂存区,被git纳入管理
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git add test.java
# 3.再次查看工作目录和暂存区中文件的状态,
# 可以看到test.java文件被git管理
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test.java
# 4.把test.java提交到本地版本库中
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git commit -m 'add test.java'
[master (root-commit) e85b3b2] add test.java
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.java
说明上边的一些列操作:这里简单解释一下,之后会详细说明。
使用Git的好处之一就是,如果出错了,它的提示信息是非常详细的,认真的耐心的看一看,就能够解决。
- 执行
$ git status命令:用于显示工作目录和暂存区中文件的状态。

文件是红色的,意思是test.java文件还没有被Git管控,这个时候直接使用git commit命令是不能生效的。 - 将文件加入Git的暂存区。
这时就要对新加入的文件执行git add + 文件名,让Git对该文件进行管控,在看一下Git的状态。

绿色表示该文件已经被Git管理了,该文件已经在Git的暂存区当中了(stage)。 - 此时便可以对test.java文件生成一个正式的
commit了。
执行$ git commit -m 'add Test_text'
-m :就是说你这此变更的理由或者原因是什么。

提示master分支根部的commit已经创建出来了。
(3)查看Git日志。
执行git log命令,查看Git日志。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git log
commit e85b3b21a4b296acacf34bf9caeeaa75544a2f2b (HEAD -> master)
Author: sha_hs <sha_hs@126.com>
Date: Sat Apr 3 10:55:55 2021 +0800
add test.java
我们可以看到,在system、global、local这三个用户签名都存在的情况下,是通过本地用户进行的提交,所以说明本地用户sha_hs的优先级最高。
提示:
- 黄颜色的一串数字是本次
commit的id号。Author表示完成这一次提交的作者。
(4)配置文件级别的优先级总结。
- 就近原则:
项目(本地)级别优先于用户(全局)级别,用户级别优先于系统级别。
三者都有时采用项目级别的签名。 - 如果只有用户级别的签名,就以用户级别的签名为准。
- 三者都没有签名,不允许,无法提交变更到本地版本库。
4、总结本文用到的Git命令
| 序号 | Git命令 | 说明 |
|---|---|---|
| 1 | $ git status |
查看当前工作区和暂存区文件的状态 |
| 2 | $ git add |
可以将跟踪到的更新放到暂存区(更新包括新增、修改、删除等操作) |
| 3 | $ git commit -m 'add Test_text' |
提交更新 |
| 4 | $ git log |
查看提交历史 |
注意:
执行
git status命令后,出现“Changed but not updated”t提示,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。
『现学现忘』Git基础 — 12、Git用户签名(补充)的更多相关文章
- 『现学现忘』Docker基础 — 12、通过RPM软件包方式安装Docker
CentOS环境下的Docker官方推荐的三种安装方式 yum安装方式 本地RPM安装方式 脚本安装方式 目录 1.下载Docker的RPM安装包 2.安装Docker 3.通过RPM安装包安装Doc ...
- 『现学现忘』Git基础 — 10、配置Git用户签名说明
目录 1.为什么要创建用户签名 2.为什么要在Git中配置这些信息 3.创建用户签名的方式 4.总结 1.为什么要创建用户签名 作为版本控制系统的客户端,每台客户机对版本库的所有提交操作,都需要注明操 ...
- 『现学现忘』Git基础 — 13、Git的基础操作
目录 1.Git最基础的使用方式 (1)初始化本地版本库 (2)查看文件的状态 (3)把文件添加到暂存区 (4)把暂存区的内容提交到本地版本库 2.总结本文用到的Git命令 1.Git最基础的使用方式 ...
- 『现学现忘』Git基础 — 3、Git介绍
目录 1.Git的历史 2.Git的特点 3.Git在项目协作开发中所解决的问题 1.Git的历史 Git是目前世界上最先进的分布式版本控制系统,开源.免费. Git 是 Linus (林纳斯)为了帮 ...
- 『现学现忘』Git基础 — 4、Git下载与安装
目录 1.Git下载 2.Git在Windows下的详细安装 3.验证Git是否安装成功 1.Git下载 进入官方地址下载Git客户端:https://git-scm.com/download/win ...
- 『现学现忘』Git基础 — 7、设置Git Bash终端默认路径
目录 1.Git Bash默认路径 2.如何查看Git Bash终端默认路径 3.如何修改Git Bash终端的默认路径 4.拓展:指定目录进入Git Bash终端 5.注意事项 如果您不熟悉Git命 ...
- 『现学现忘』Git基础 — 11、配置Git用户签名的方式
目录 1.配置Git签名 (1)语法 (2)配置系统用户签名 (3)配置全局用户签名 (4)配置本地用户签名 2.查看三个配置文件的用户签名 (1)语法 (2)查看项目/仓库级别的配置文件信息(loc ...
- 『现学现忘』Git基础 — 14、Git基础操作的总结与补充
目录 1.Git本地版本库结构 2.Git常用操作方法 3.补充:添加多个文件到暂存区 4.补充:提交操作未写备注 5.补充:从工作区直接提交到版本库 1.Git本地版本库结构 如下图所示: 工作区( ...
- 『现学现忘』Git基础 — 19、在Git中进行忽略文件操作
目录 1.忽略文件说明 2.忽略文件的原则 3..gitignore忽略规则 4.忽略文件的三种方式 (1)忽略单个仓库中的文件(远程共用) (2)忽略单个仓库中的文件(本地使用) (3)全局忽略 1 ...
随机推荐
- 为什么Java不支持运算符重载?
另一个类似棘手的Java问题.为什么 C++ 支持运算符重载而 Java 不支持? 有人可能会说+运算符在 Java 中已被重载用于字符串连接,不要被这些论据所欺骗.与 C++ 不同,Java 不支持 ...
- 如何使用 Spring Boot 实现异常处理?
Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法. 我们通过实现一个 ControlerAdvice 类,来处理控制器类抛出的所有异常.
- 什么是 Idempotence 以及它在哪里使用?
幂等性是能够以这样的方式做两次事情的特性,即最终结果将保持不变,即好像 它只做了一次. 用法:在远程服务或数据源中使用 Idempotence,这样当它多次接收指令时,它 只处理指令一次.
- SSM-learning
架构流程图: 第一步:建立spring框架: 包括:建立所需要的dao层,sevice层和controller层和实体类,建立spring配置文件,配置自动扫描bean AccountDao: @Re ...
- asp.net 可视化操作(一)——asp.net安装与使用
目录 安装 创建网页 设计网页 运行 vs 2019安装asp.net 1.安装 打开vs,选择继续但无需代码 -->工具–>获取工具和功能 勾选如下选项后,点击关闭 点击更新等待安装完成 ...
- C与C++的区别之函数调用堆栈
函数调用栈 1.函数参数带入(入调用方函数的栈,从右向左入栈) int fun(int a); int fun(int a, int b); int fun(int a, int b, int c); ...
- Web最佳实践阅读总结(1)
介绍 最近开始刷一些书和题,此系列是介绍在读Web最佳实践的一些收获和体会. web前端发展现状 存在问题: 代码组织混乱 代码格式的问题突出 页面布局随意 网站整体性能差,没有意识到应用诸如缓存,动 ...
- [译] 沙箱中的间谍 - 可行的 JavaScript 高速缓存区攻击
原文 The Spy in the Sandbox – Practical Cache Attacks in Javascript 相关论文可在 https://github.com/wyvernno ...
- 【面试普通人VS高手系列】谈谈你对AQS的理解
AQS是AbstractQueuedSynchronizer的简称,是并发编程中比较核心的组件. 在很多大厂的面试中,面试官对于并发编程的考核要求相对较高,简单来说,如果你不懂并发编程,那么你很难通过 ...
- C#编写程序,计算数组中奇数之和和偶数之和
编写程序,计算数组中奇数之和和偶数之和. 代码: using System; using System.Collections.Generic; using System.Linq; using Sy ...