- 原文地址:Git Aliases I Use (Because I'm Lazy)
- 原文做者:Victor Zhou
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:EmilyQiRabbit
- 校对者:imononoke,weisiwu,portandbridge
写于 2019 年 9 月 16 日,更新于 2019 年 9 月 17 日html
几年前,当我第一次开始构建一些比较大的我的项目时,我终于开始频繁的使用 Git。如今,输入 git status
和 git push
这样的命令对我来讲易如反掌,可是若是你有一些使用 Git 的经验,你必定知道有一些命令会很是冗长。前端
好比说我常遇到这样的命令:android
$ git commit --amend --no-edit
复制代码
这条命令会把你暂存的修改并入你最近的一次 commit,而且不会修改此次 commit 的信息(这样 Git 也就不会打开一个文件编辑界面了)。它最常常的用途是修改刚刚提交的 commit。也许我太粗心了,老是在刚提交完一条 commit 还不到 30 秒,就发现一个拼写错误或者忘了删除了调式信息了 😠。ios
输入 git commit --amend --no-edit
这 28 个字符很快就会让人感到乏味。我如今正着迷于优化项目(甚至是在还不该该进行优化的时候我就开始行动了🤷),因此某天我就开始花时间思考如何优化个人 git 命令…git
当你用 google 搜索下如“简化 git 命令”这样的内容,你将会很快的找到关于 Git 别名的信息。事实是,简写命令的方法已经内建在 Git 中了!你只须要告知 Git 你想要配置的 git 别名的信息便可。例如,你能够经过将以下这行代码复制粘贴到你的控制台并执行,就能够将 status
简写为 s
:github
git config --global alias.s status
复制代码
这行命令其实是更新了你的 .gitconfig
文件,该文件用来保存全局 Git 配置:shell
[alias]
s = status
复制代码
如今,只要你输入别名 s
,Git 就会自动用 status
来替换掉它!后端
下面这些是我最经常使用的 Git 别名:bash
[alias]
s = status
d = diff
co = checkout
br = branch
last = log -1 HEAD
cane = commit --amend --no-edit
lo = log --oneline -n 10
pr = pull --rebase
复制代码
个人 .gitconfig 文件session
git config --global alias.s status
git config --global alias.d diff
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.last "log -1 HEAD"
git config --global alias.cane "commit --amend --no-edit"
git config --global alias.pr "pull --rebase"
git config --global alias.lo "log --oneline -n 10"
复制代码
若是你也想使用这些 git 别名,将这些命令拷贝并粘贴到控制台执行便可!
最后,这儿还有一个我经常使用的 bash 命令简写:
# ... 其余内容
alias g=git
复制代码
你可使用任何编辑器,来将这些内容加入到你的 .bash_profile 文件中。
这是一个 Bash 别名配置,它的功能就正如你所想的那样。若是你使用其余的 shell,你能够在它的相似的功能中完成(例如 Zsh 别名配置)。
一切就绪。如今你能够这样使用 Git 了:
$ g s
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
复制代码
$ g br
* master
复制代码
$ g co -b new-branch
Switched to a new branch 'new-branch'
复制代码
$ g lo
Author: Victor Zhou <vzhou842@gmail.com>
Date: Mon Aug 26 01:16:49 2019 -0700
Bump version to 1.1.1
复制代码
也许有用?这实际上是因人而异的。若是你和我同样,须要作一些有点强迫症的事情,好比老是习惯性的重复输入 “git status”,那么它确实能够节省你一些时间:
— 参见 Victor Zhou (@victorczhou) 发布于 2019 年 9 月 15 日的 twitter
我我的认为,这样作代价很小(每台新设备的配置大概只须要 30 秒),而你就可以获得一个速度更快而且更有效率的很好的平常体验。固然,实际上你能节约多少时间仍是值得商榷的…
咱们来粗略计算一下配置了 git 别名实际能节约多少时间。我大概能够一分钟输入 135 个单词,咱们假设每一个单词有 4 个字母,那么就是每秒能够输入
个字母。
下面这个表格展现了我最经常使用的简写能够节省的字母数:
原始命令 | 简写命令 | 可节省的字母数 |
---|---|---|
git status |
g s |
7 |
git diff |
g d |
5 |
git checkout |
g co |
8 |
git branch |
g br |
6 |
git log -1 HEAD |
g last |
9 |
git commit --amend --no-edit |
g cane |
20 |
接下来,我使用 history 命令查看了我最近的 500 条命令。这是数据分析:
命令 | 使用数量 |
---|---|
g s |
155 |
g d |
47 |
g co |
19 |
g br |
26 |
g last |
11 |
g cane |
2 |
其余 Git 命令 | 94 |
非 Git 命令 | 146 |
每一个“其余 Git 命令”能节省 2 个字母(由于我将 git
简写为 g
),因此总的节省字母是:
命令 | 使用次数 | 可节省的字母数 | 总共节省的字母数 |
---|---|---|---|
g s |
155 | 7 | 1085 |
g d |
47 | 5 | 235 |
g co |
19 | 8 | 152 |
g br |
26 | 6 | 156 |
g last |
11 | 9 | 99 |
g cane |
2 | 20 | 40 |
其余 Git 命令 | 94 | 2 | 188 |
因此一共节省了 1955 个字母,平均每一个 Git 命令节省了 个字母。假设我工做日的八小时内输入大约 100 条 Git 命令,也就是能够节约 550 个字母,换算也就是天天能够节约一分钟(使用我前文提到的每秒输入 9 个字母的数据)。
可是我要重申:配置别名能让你以为提升了效率,这可能会给你一些内心暗示的做用,让你真的变得更加高效了。
你怎么看?你会去使用 Git 别名吗?为何去用或者为何不用?你还有什么其余喜欢用的别名?欢迎在评论区写下讨论!
更新:在 lobste.rs 的博客 和原文下面的评论区中有一些不错的讨论。推荐你阅读。
当我写这篇博客的时候,我意识到还有三个经常使用的 Git 命令,但却被我忽略了:
$ git add .
$ git commit -m 'message'
$ git reset --hard
复制代码
我将会把它们也加入到个人 Git 别名配置中!
git config --global alias.a "add ."
git config --global alias.cm "commit -m"
git config --global alias.rh "reset --hard"
复制代码
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。