Git 学习笔记- 准备工作

操作系统 macOS

一、说明

基于命令行学习,原因如下

  • GUI 不能涵盖所有的 Git 命令
  • GUI 种类繁多,但是命令行可以做到统一

macOS 使用终端(Terminal); Windows 用户使用命令窗口(Command Prompt)或 PowerShell 。

二、安装

在执行安装操作之前,可以先查看版本信息,是否已经安装过了

git --version

如果能看到版本信息证明已经安装过了

git version 2.23.0

安装教程可以参考git官网的中文安装教程:1.5 起步 - 安装 Git

安装完毕之后,查看版本信息检查是否安装成功即可。

三、配置用户信息

安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改。

3.1 配置文件路径

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。暂时没有找到该配置文件

  2. ~/.gitconfig~/.config/git/config 文件:只针对当前用户。 传递 --global 选项让 Git 读写此文件,这会对所有 的仓库生效。

  3. 当前仓库的 .git 目录中的 config 文件,即 .git/config。 传递 --local 选项让 Git 强制读写此文件.进入某个 Git 仓库中,默认用的就是它。

每一个级别会覆盖上一级别的配置,所以 .git/config > ~/.gitconfig >/etc/gitconfig

3.2 查看配置信息

git config --list --show-origin
file:/Users/zhangwenqi/.gitconfig       filter.lfs.clean=git-lfs clean -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.process=git-lfs filter-process
file:/Users/zhangwenqi/.gitconfig       filter.lfs.required=true
file:/Users/zhangwenqi/.gitconfig       user.name=1071942338
file:/Users/zhangwenqi/.gitconfig       user.email=1071942338@qq.com
file:/Users/zhangwenqi/.gitconfig       core.autocrlf=input

其中 git config 是 git 指令,--list(列出所有) 和 --show-origin( 显示配置的来源(文件、标准输入、数据对象,或命令行)) 都是选项。没有进入具体仓库,所有只有~/.gitconfig路径的数据。更多选项可以通过在命令行中输入 git config 获得 git 帮助文档

用法:git config [<选项>]

配置文件位置
    --global              使用全局配置文件
    --system              使用系统级配置文件
    --local               使用仓库级配置文件
    --worktree            使用工作区级别的配置文件
    -f, --file <文件>     使用指定的配置文件
    --blob <数据对象 ID>  从给定的数据对象读取配置

操作
    --get                 获取值:name [value-regex]
    --get-all             获得所有的值:key [value-regex]
    --get-regexp          根据正则表达式获得值:name-regex [value-regex]
    --get-urlmatch        获得 URL 取值:section[.var] URL
    --replace-all         替换所有匹配的变量:name value [value_regex]
    --add                 添加一个新的变量:name value
    --unset               删除一个变量:name [value-regex]
    --unset-all           删除所有匹配项:name [value-regex]
    --rename-section      重命名小节:old-name new-name
    --remove-section      删除一个小节:name
    -l, --list            列出所有
    -e, --edit            打开一个编辑器
    --get-color           获得配置的颜色:配置 [默认]
    --get-colorbool       获得颜色设置:配置 [stdout-is-tty]

类型
    -t, --type <>         取值为该类型
    --bool                值是 "true" 或 "false"
    --int                 值是十进制数
    --bool-or-int         值是 --bool or --int
    --path                值是一个路径(文件或目录名)
    --expiry-date         值是一个到期日期

其它
    -z, --null            终止值是 NUL 字节
    --name-only           只显示变量名
    --includes            查询时参照 include 指令递归查找
    --show-origin         显示配置的来源(文件、标准输入、数据对象,或命令行)
    --default <取值>      使用 --get 参数,当缺少设置时使用默认值

3.3 全局配置用户名和邮箱

3.3.1 命令

  • 配置用户名 git config --global user.name John Doe
  • 配置邮箱 git config --global user.email johndoe@example.com

3.3.2 练习和验证

//修改前
file:/Users/zhangwenqi/.gitconfig       filter.lfs.clean=git-lfs clean -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.process=git-lfs filter-process
file:/Users/zhangwenqi/.gitconfig       filter.lfs.required=true
file:/Users/zhangwenqi/.gitconfig       user.name=1071942338
file:/Users/zhangwenqi/.gitconfig       user.email=1071942338@qq.com
file:/Users/zhangwenqi/.gitconfig       core.autocrlf=input
//指令
git config --global user.name test
git config --global user.email test@qq.com
//修改后
file:/usr/local/etc/gitconfig   credential.helper=osxkeychain
file:/Users/zhangwenqi/.gitconfig       filter.lfs.clean=git-lfs clean -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.process=git-lfs filter-process
file:/Users/zhangwenqi/.gitconfig       filter.lfs.required=true
file:/Users/zhangwenqi/.gitconfig       user.name=test
file:/Users/zhangwenqi/.gitconfig       user.email=test@qq.com
file:/Users/zhangwenqi/.gitconfig       core.autocrlf=input

3.4 本地配置用户名和邮箱

3.4.1 准备一个仓库

首先要找一个已经存在的git仓库,没有就使用git init 初始化一个新的仓库

3.4.2 命令

  • 配置用户名 git config --local user.name test2
  • 配置邮箱 git config --local user.email test2@qq.com

3.4.3 练习和验证

//修改前
file:/usr/local/etc/gitconfig   credential.helper=osxkeychain
file:/Users/zhangwenqi/.gitconfig       filter.lfs.clean=git-lfs clean -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.process=git-lfs filter-process
file:/Users/zhangwenqi/.gitconfig       filter.lfs.required=true
file:/Users/zhangwenqi/.gitconfig       user.name=test
file:/Users/zhangwenqi/.gitconfig       user.email=test@qq.com
file:/Users/zhangwenqi/.gitconfig       core.autocrlf=input
file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=true
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        core.ignorecase=true
file:.git/config        core.precomposeunicode=true
//修改后
file:/usr/local/etc/gitconfig   credential.helper=osxkeychain
file:/Users/zhangwenqi/.gitconfig       filter.lfs.clean=git-lfs clean -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.smudge=git-lfs smudge -- %f
file:/Users/zhangwenqi/.gitconfig       filter.lfs.process=git-lfs filter-process
file:/Users/zhangwenqi/.gitconfig       filter.lfs.required=true
file:/Users/zhangwenqi/.gitconfig       user.name=test
file:/Users/zhangwenqi/.gitconfig       user.email=test@qq.com
file:/Users/zhangwenqi/.gitconfig       core.autocrlf=input
file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=true
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        core.ignorecase=true
file:.git/config        core.precomposeunicode=true
file:.git/config        user.email=test2@qq.com
file:.git/config        user.name=test2

现在可以看到,~/.gitconfig.git/config的数据

参考


  • 如果文章帮到你了,欢迎评论或邮件
  • 如果你需要一门视频课程 玩转Git三剑客,通过链接购买我有奖励 ^_^
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,158评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,600评论 1 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,785评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,655评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,075评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,002评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,146评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,918评论 0 211
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,671评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,838评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,318评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,636评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,343评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,187评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,982评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,126评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,934评论 2 279