针对 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 , 或从
Git
Hub 网站上的镜像来获得,网址为 https://github.com/git/git/releases 。 通常在Git
Hub 上的是最新版本,但 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 参数,当缺少设置时使用默认值