开发工具——git配置+补全

前一篇文章从原理的角度介绍了全世界最先进的分布式版本控制系统——Git,在全民 Git 的今天,如果你还不知道配置满足自己需求的自定义 Git ,那确实说不过去了。例如,你在敲命令时还是傻傻的打出所有的命令全称。这篇文章跟大家一起通过简单的配置提高 Git 操作效率。

Git 配置

Git 初始化一个项目时,我们需要设置用户名称和邮箱等信息,这是为了在提交代码的时候,Git 知道在 author、email 等栏中填写的默认信息。除此之外,Git 支持很多其他可供开发者自定义的配置,包括颜色、缩写等等。

大家比较熟悉的做法应该是通过 git config 命令去修改当前的配置,常用操作如下:

// 设置当前项目仓库提交的用户名和邮箱
$ git config user.name "xxxx"
$ git config user.email "xxxx@gmail.com"

// 设置所有仓库提交的用户名和邮箱
$ git config --global user.name "xxxx"
$ git config --global user.email "xxxx@example.com"

// 查看所有配置信息
$ 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 = xxxx@xxxxxx.com
    name = xxxxx
命令配置
[core]
    compression = 0

以上基本上涵盖了工作中可能涉及到的配置部分,如果想了解更多配置,可以参考这里

Git 自动补全

shell 命令大家都很熟悉,在敲命令时,敲出命令的前几个字母之后就可以通过 'Tab' 去自动补全完整命令,如果相同字母开头有多个命令,shell 则给大家列出所有的可用命令,相当方便快捷!


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-completuion.png

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。

Git补全.png

最后,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

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,789评论 6 342
  • Time:11:00-11:30pm 导读 记得有个教我们人格心理学的资深老师,在谈及弗洛伊德的作品时说过,现在的...
    灿的行云流水阅读 163评论 0 0
  • 作者:Erica Sadun,原文链接,原文日期:2016-10-07译者:wiilen;校对:Cee;定稿:CM...
    梁杰_numbbbbb阅读 173评论 0 0
  • 文/墨雪 看看那木头 皮质烂叶的包裹下 躺了一具快发霉的春天。 呆滞的那丝伤感 我轻轻的打开了 丢弃了生命的给予 ...
    诗与雪阅读 119评论 1 2