前一篇文章从原理的角度介绍了全世界最先进的分布式版本控制系统——Git,在全民 Git 的今天,如果你还不知道配置满足自己需求的自定义 Git ,那确实说不过去了。例如,你在敲命令时还是傻傻的打出所有的命令全称。这篇文章跟大家一起通过简单的配置提高 Git 操作效率。
Git 配置
Git 初始化一个项目时,我们需要设置用户名称和邮箱等信息,这是为了在提交代码的时候,Git 知道在 author、email 等栏中填写的默认信息。除此之外,Git 支持很多其他可供开发者自定义的配置,包括颜色、缩写等等。
大家比较熟悉的做法应该是通过 git config 命令去修改当前的配置,常用操作如下:
// 设置当前项目仓库提交的用户名和邮箱
$ git config user.name "xxxx"
$ git config user.email "[email protected]"
// 设置所有仓库提交的用户名和邮箱
$ git config --global user.name "xxxx"
$ git config --global user.email "[email protected]"
// 查看所有配置信息
$ git config --list
// 查看 Git 某项配置信息
$ git config user.name
除了通过命令去修改 Git 配置外,你也可以直接修改 Git 的配置文件来达到配置的目标。Git 一共有三种配置文件,分别对应不同仓库权限的配置:
/etc/gitconfig
系统级 Git 配置文件,当前系统上每个用户及他们仓库的通用配置,当通过 git config 命令并带上 --system 选项时,Git 就会从此文件读写配置变量。~/.gitconfig 或 ~/.config/git/config 文件
用户级 Git 配置文件,只针对当前用户。 通过 git config 命令并带上 --global 选项时,Git 就会从此文件读写配置变量。.git/config(当前项目 git 仓库中的 config 文件)
项目级 Git 配置文件,仅针对当前仓库。
【注意】低权限配置会覆盖高全新的配置,例如 .git/config的配置变量会替换 /etc/gitconfig 中的配置变量。
下面列举通过文件配置 Git 的方法,下面的写法你可以理解为一种 DSL 语言。
颜色配置
[color]
ui = auto
status = auto
branch = auto
diff = auto
你也可以指定某个命令的颜色配置
[color "branch"]
current = green reverse
local = green
remote = red
命令缩写配置
[alias]
br = branch
df = diff
co = checkout
ss = status
用户信息配置
[user]
email = [email protected]
name = xxxxx
命令配置
[core]
compression = 0
以上基本上涵盖了工作中可能涉及到的配置部分,如果想了解更多配置,可以参考这里。
Git 自动补全
shell 命令大家都很熟悉,在敲命令时,敲出命令的前几个字母之后就可以通过 'Tab' 去自动补全完整命令,如果相同字母开头有多个命令,shell 则给大家列出所有的可用命令,相当方便快捷!
日常工作中,Git 操作非常普遍,Git 也鼓励大家随时提交修改到本地仓库,避免积累太多修改再提交导致与远程分支冲突的风险。然而,每次敲所有的命令相当费事,而且,偶尔拼错还要重头再来。如果可以像 shell 一样可以通过 Tab 来自动补全命令多好!这里,详细介绍下如何让你的 Git 命令支持自动补全。
1. 下载 bash 完整补全包
brew update
brew install bash-completion
bash-completion:增强bash自动补齐功能,默认情况下,在 bash 中双击 TAB 可以自动补齐,但仅能自动补齐命令名和文件名。bash-2.05 及以后的版本提供了自动补齐的编程接口,通过安装 bash-completion 来使用 TAB 键自动补齐几乎任何内容,包括参数、文件、目录甚至包名称等等。
下载完成后会有一段提示,说的很清晰,将一段命令添加到 bash_profile 中。
bash_profile 是什么?Linux系统默认使用的 shell 为 bash,在 shell 启动时会读取和执行当前用户的 shell 配置文件:~/.bash_profile 和 ~/.bashrc 文件。
2. 添加命令
sudo open ~/.bash_profile
// then 粘贴提示的命令到文件中
...
// then 保存+关闭
...
3. 拷贝 Git 脚本到根目录
这里的 Git 脚本是 Git 源码中的 git-completion.bash 文件,添加到用户根目录之后,可以配合上一步 linux shell 启动时执行。
首先获取 Git 源码:
git clone https://github.com/git/git.git
找到文件并拷贝到当前用户根目录中,文件的路径为 contrib/completion/git-completion.bash:
cp git-completion.bash ~/.git-completion.bash
4. 使脚本生效
刚刚修改了用户启动 shell 后读取的配置,如果想在不重启电脑的情况下使 Git 补全功能生效,我们需要手动执行以下脚本。
source ~/.git-completion.bash
重启 shell 终端,在敲 Git 命令后使用 Tab。
最后,Enjoy yourself!
参考文档:
https://git-scm.com/book/zh/v1/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git
https://git-scm.com/book/zh/v1/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git