操作系统 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 配置文件路径
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。暂时没有找到该配置文件)~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 传递 --global 选项让 Git 读写此文件,这会对所有 的仓库生效。当前仓库的
.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三剑客,通过链接购买我有奖励
^_^