针对 macOS 的 Git 安装和使用说明文档 ⑅︎◡̈︎*
Git 是什么
Git 是什么Git 是一个分布式的版本控制系统,与集中式的版本控制系统不同的是,每个人都工作在通过克隆建立的本地版本库中。也就是说每个人都拥有一个完整的版本库,查看提交日志、提交、创建里程碑和分支、合并分支、回退等所有操作都直接在本地完成而不需要网络连接。
对于 Git 仓库来说,每个人都有一个独立完整的仓库,所谓的远程仓库或是服务器仓库其实也是一个仓库,只不过这台主机 24 小时运行,它是一个稳定的仓库,供他人克隆、推送,也从服务器仓库中拉取别人的提交。
Git 是目前世界上最先进的分布式版本控制系统,没有之一!
工作区( Working Diretory )用于修改文件缓存区( Stage )是用来暂时存放工作区中修改的内容提交历史( Commit History )提交代码的历史记录
如下图所示:

举个例子,我在本地电脑的 A文件夹 下修改某文件中的一行代码,这个修改信息就被 git 自动发现了,它把这个信息记在自己的小本子上,我们可以把每次 被修改过的A文件夹整体 看作是一个新的犯人,使用 git add 把这个犯人放到缓存区里暂时拘留,再通过 git commit 把这些文件放到本地的仓库正式坐牢,而仓库里储存了每个犯人的犯罪信息(我自定义的信息),通过 push 可以把仓库里的犯人同步到远程仓库,这时候远程仓库和本地仓库的信息就一样了。
Git 的安装
Git 的安装Mac 本身自带 Git ,但是版本老旧,缺少部分功能,因此需要对 Git 进行升级,网上对于 Git 升级的方法有许多,在这里我 po 出一个未验证的方法,以后用到再进行补充:
一共分为 4 步:
- 备份旧的
Git目录
$ cd /usr/local/bin
$ ls git*
$ mkdir backup-git # 文件夹名字为 backup-git ,可以更换
$ mv git* ./backup-git/ # 移动文件
- 安装新的
Git
$ brew install git # 根据官网描述这样下载也许不是最新发布版本(但是无伤大雅
- 修改环境变量
$ vim .bash_profile # 打开配置文件
# ↓ 添加以下内容 ↓
$ export GIT=/usr/local/Cellar/git/2.1.3 # 这里写你自己下载的 Git 版本地址
$ export PATH=$GIT/bin:$PATH
- 刷新环境变量
$ source ~/.bash_profile # 命令立即生效
通过以下命令查看当前的 Git 版本:
$ git --version
$ git clone git://git.kernel.org/pub/scm/git/git.git
你可以继续从几个地方来取得最新发布版本的 tar 包。 你可以从 Kernel.org 网站获取,网址为 https://www.kernel.org/pub/software/scm/git , 或从
GitHub 网站上的镜像来获得,网址为 https://github.com/git/git/releases 。 通常在GitHub 上的是最新版本,但 kernel.org 上包含有文件下载签名,如果你想验证下载正确性的话会用到。
Git 的配置
Git 的配置在系统上安装了 Git,你会想要做几件事来定制你的 Git 环境。 每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量,在这里我推荐使用 Mac 的终端进行以后的各种操作,因此只介绍行为方面的配置信息。
- ⚠️ 用户信息配置 ⚠️
安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改,如果没有设置 Git 会提示 *** Please tell me who you are.:
$ git config --global user.name "CaymanHK"
$ git config --global user.email cayman@xxx.com
# 此用户名和邮箱是 Git 提交代码时用来显示你身份和联系方式的,并不是GitHub 用户名和邮箱
ps. 如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情,Git 都会使用全局配置信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
使用 git config --list 命令来列出所有 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 参数,当缺少设置时使用默认值