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

博客 动态
0 261
优雅殿下
优雅殿下 2022-04-20 11:58:12
悬赏:0 积分 收藏

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

目录
  • 1、修改用户签名
  • 2、取消用户签名
  • 3、用户签名的优先级
  • 4、总结本文用到的Git命令

1、修改用户签名

其实很简单,就是重新执行git config命令,换个用户名和邮箱地址就可以了,新配置的内容会覆盖之前配置的内容,达到了用户签名的修改。

以系统用户为例:

# 查看系统级别的用户配置L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git config --list --systemdiff.astextplain.textconv=astextplainfilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smudge -- %ffilter.lfs.process=git-lfs filter-processfilter.lfs.required=truehttp.sslbackend=opensslhttp.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crtcore.autocrlf=truecore.fscache=truecore.symlinks=falsecredential.helper=manageruser.name=tang_s  # 这里是tang_suser.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 --systemdiff.astextplain.textconv=astextplainfilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smudge -- %ffilter.lfs.process=git-lfs filter-processfilter.lfs.required=truehttp.sslbackend=opensslhttp.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crtcore.autocrlf=truecore.fscache=truecore.symlinks=falsecredential.helper=manageruser.name=zhu_bj	# 这里是zhu_bjuser.email=tang_s@126.com

提示:

  • 系统级别的配置对应的是所有操作系统的用户,全局配置对应的是单个系统用户对所有Git仓库的配置,本地配置是对单个Git仓库的配置。
  • 所以综上所述,在一台计算机中,系统用户只能有一个,全局用户是每一个用户可以设置一个,本地用户可以设置多个(一个本地版本库对应一个)。

2、取消用户签名

语法:

git config --配置文件范围 --unset user.namegit config --配置文件范围 --unset user.email

示例:取消系统用户的用户名和邮箱设置:

# 取消系统用户的用户名和邮箱设置L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git config --system --unset user.nameL@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 --systemdiff.astextplain.textconv=astextplainfilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smudge -- %ffilter.lfs.process=git-lfs filter-processfilter.lfs.required=truehttp.sslbackend=opensslhttp.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crtcore.autocrlf=truecore.fscache=truecore.symlinks=falsecredential.helper=manager

提示:全局用户同理,本地用户需要到仓库中执行命令,也是同理的。

3、用户签名的优先级

之前我们讲过执行git config命令有三个作用域,分别是local、global、system。

接下来,要探讨的是,这三个配置作用域的优先级。

(1)先查看本机Git用户签名配置

# 查看系统用户签名L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git config --list --systemdiff.astextplain.textconv=astextplainfilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smudge -- %ffilter.lfs.process=git-lfs filter-processfilter.lfs.required=truehttp.sslbackend=opensslhttp.sslcainfo=F:/DevInstall/Git/GitforWindows/mingw64/ssl/certs/ca-bundle.crtcore.autocrlf=truecore.fscache=truecore.symlinks=falsecredential.helper=manageruser.name=tang_suser.email=tang_s@126.com# 查看全局用户签名L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git config --list --globaluser.name=sun_wkuser.email=sun_wk@126.com# 查看本地用户签名L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git config --list --localcore.repositoryformatversion=0core.filemode=falsecore.bare=falsecore.logallrefupdates=truecore.symlinks=falsecore.ignorecase=trueuser.name=sha_hsuser.email=sha_hs@126.com

可以看到:

  • 系统用户签名:tang_s
  • 全局用户签名:sun_wk
  • 本地用户签名:sha_hs

(2)创建一个文件,提交到本地版本库中。

1)在仓库中创建一个文本。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ touch test.javaL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ lltotal 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 statusOn branch masterNo commits yetUntracked files:  (use "git add <file>..." to include in what will be committed)        test.javanothing 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 statusOn branch masterNo commits yetChanges 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命令:用于显示工作目录和暂存区中文件的状态。
    image
    文件是红色的,意思是test.java文件还没有被Git管控,这个时候直接使用git commit命令是不能生效的。
  • 将文件加入Git的暂存区。
    这时就要对新加入的文件执行git add + 文件名,让Git对该文件进行管控,在看一下Git的状态。
    image
    绿色表示该文件已经被Git管理了,该文件已经在Git的暂存区当中了(stage)。
  • 此时便可以对test.java文件生成一个正式的commit了。
    执行$ git commit -m 'add Test_text'
    -m :就是说你这此变更的理由或者原因是什么。
    image
    提示master分支根部的commit已经创建出来了。

(3)查看Git日志。

执行git log命令,查看Git日志。

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git logcommit 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)配置文件级别的优先级总结。

  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提示,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。

posted @ 2022-04-20 11:16 繁华似锦Fighting 阅读(4) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员