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

我们可以看到,在systemgloballocal这三个用户签名都存在的情况下,是通过本地用户进行的提交,所以说明本地用户sha_hs的优先级最高。

提示:

  • 黄颜色的一串数字是本次commitid号。
  • Author表示完成这一次提交的作者。

(4)配置文件级别的优先级总结。

  1. 就近原则:

    项目(本地)级别优先于用户(全局)级别,用户级别优先于系统级别。

    三者都有时采用项目级别的签名。
  2. 如果只有用户级别的签名,就以用户级别的签名为准。
  3. 三者都没有签名,不允许,无法提交变更到本地版本库。

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用户签名(补充)的更多相关文章

  1. 『现学现忘』Docker基础 — 12、通过RPM软件包方式安装Docker

    CentOS环境下的Docker官方推荐的三种安装方式 yum安装方式 本地RPM安装方式 脚本安装方式 目录 1.下载Docker的RPM安装包 2.安装Docker 3.通过RPM安装包安装Doc ...

  2. 『现学现忘』Git基础 — 10、配置Git用户签名说明

    目录 1.为什么要创建用户签名 2.为什么要在Git中配置这些信息 3.创建用户签名的方式 4.总结 1.为什么要创建用户签名 作为版本控制系统的客户端,每台客户机对版本库的所有提交操作,都需要注明操 ...

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

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

  4. 『现学现忘』Git基础 — 3、Git介绍

    目录 1.Git的历史 2.Git的特点 3.Git在项目协作开发中所解决的问题 1.Git的历史 Git是目前世界上最先进的分布式版本控制系统,开源.免费. Git 是 Linus (林纳斯)为了帮 ...

  5. 『现学现忘』Git基础 — 4、Git下载与安装

    目录 1.Git下载 2.Git在Windows下的详细安装 3.验证Git是否安装成功 1.Git下载 进入官方地址下载Git客户端:https://git-scm.com/download/win ...

  6. 『现学现忘』Git基础 — 7、设置Git Bash终端默认路径

    目录 1.Git Bash默认路径 2.如何查看Git Bash终端默认路径 3.如何修改Git Bash终端的默认路径 4.拓展:指定目录进入Git Bash终端 5.注意事项 如果您不熟悉Git命 ...

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

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

  8. 『现学现忘』Git基础 — 14、Git基础操作的总结与补充

    目录 1.Git本地版本库结构 2.Git常用操作方法 3.补充:添加多个文件到暂存区 4.补充:提交操作未写备注 5.补充:从工作区直接提交到版本库 1.Git本地版本库结构 如下图所示: 工作区( ...

  9. 『现学现忘』Git基础 — 19、在Git中进行忽略文件操作

    目录 1.忽略文件说明 2.忽略文件的原则 3..gitignore忽略规则 4.忽略文件的三种方式 (1)忽略单个仓库中的文件(远程共用) (2)忽略单个仓库中的文件(本地使用) (3)全局忽略 1 ...

随机推荐

  1. 现代中央处理器(CPU)是怎样进行分支预测的?

    人们一直追求CPU分支预测的准确率,论文Simultaneous Subordinate Microthreading (SSMT)中给了一组数据,如果分支预测的准确率是100%,大多数应用的IPC会 ...

  2. Mysql之锁(一)

    读锁与写锁 读锁:共享锁.Shared Locks.S锁. 写锁:排他锁.Exclusive Locks.X锁. 读锁:只能读不允许写 写锁:不能读也不能写,只允许自己写 但是允许其他事务进行普通的s ...

  3. 为什么需要域驱动设计(DDD)?

    我们需要 DDD 的因素 – 微服务面试问题

  4. c++的常用库

    C++ 资源大全 关于 C++ 框架.库和资源的一些汇总列表,内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++标准库,包括了STL容器,算法和 ...

  5. css写作建议和性能优化小结

    1.前言 还有几天就到国庆中秋了,快要放假了,先祝大家节日快乐!之前写过js的写作建议和技巧,那么今天就来聊聊css吧!说到css,每一个网页都离不开css,但是对于css,很多开发者的想法就是,cs ...

  6. 居中的css:完全指南(翻译)

    这里主要参考的是CHRIS COYIER写的一篇的文章(点击查看),主要讲了关于css水平.垂直居中的一些方法,每个方法后面都有一个demo,可以在线查看效果. 1 水平 水平居中有行内元素和块元素, ...

  7. call、apply和 bind的简单使用方法

    - call.apply:在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. J ...

  8. C#编写程序,用 while 循环语句实现下列功能

    编写程序,用 while 循环语句实现下列功能:有一篮鸡蛋,不止一个,有人两个两个数,多余一个,三个三个数,多余一个,再四个四个地数,也多余一个,请问这篮鸡蛋至少有多少个. 代码: using Sys ...

  9. java中的访问控制有什么用?如何用法?请举例

    9.访问控制 [新手可忽略不影响继续学习] 访问控制有什么用?在软件公司里是这么用的,我们想像一种场景,在你的类中,你编了三个私有方法,马克-to-win,别人当然都用不了,但在类外,你也是用不了的, ...

  10. 解决IDEA中控制台输出乱码

    1. 修改VM Options(2种方法) 第一种,直接修改Tomcat中的 VM Options,这种只对当前项目有效 (1)先点击 Run -> Edit Configurations- 2 ...