Git是在开发过程必不可少的一款工具,它经常用于代码的版本控制与团队开发。
经常使用Git的同学应该都很清楚,Git在代码的提交、合并、版本管理过程中涉及大量的命令。
这对于开发者来说具有一定的记忆负担,而且重复输入复杂冗长的命令,也会导致效率急剧降低。
而别名则是一个行之有效的解决方法,通过使用别名,可以为最常用和复杂的Git命令创建快捷方式,这样能够极大的提升开发效率。
本文,就来介绍能够让开发效率倍增的8个别名。
定义别名
要想定义别名,需要用到git config配置命令:
$ git config --global alias.p 'push'
上述命令中alias.p表示要定义一个别名p,push代表要替换的命令。
简而言之,上述配置的含义就是利用p来替代push命令。
下面,就可以通过别名来使用你需要的命令:
$ git p
查看当前配置的别名,可以通过如下命令:
$ git config --global -l
user.name=ricardo
user.email=ricardo@example.com
alias.p=push
对于Linux有一定基础的同学都知道,我们可以使用自己喜欢的shell来定义别名,例如,Bash或zsh。
但是,使用Git定义别名能够提供shell无法提供的功能。
首先,它允许你能够在不同shell下使用,无需其他多余配置。其次,Git将你定义的别名保存到用户配置文件中,从而,它允许你将文件转移到其他计算机。
当然,至于更加倾向哪种方式来定义别名,取决于自己的使用习惯。
下面,就开始正式介绍这8个别名。
1. Git status
在使用Git过程中,会经常用到git status来查看目前更改的文件。
默认情况下,此命令会提供详细输出,内容比较多,有很多或许用不到。
通过添加选项-sb能够减少输出信息,避免冗长无用的信息输出:
$ git config --global alias.st 'status -sb'
这样,使用git st命令就可以输出清晰明了的信息。
2. Git log --oneline
创建一个别名以单行显示提交,以获得更紧凑的输出:
$ git config --global alias.ll 'log --oneline'
3. Git last commit
显示有关你最近提交修改的详细信息:
$ git config --global alias.last 'log -1 HEAD --stat'
用这个别名来查看最近一次提交的修改:
$ git last
commit f3dddcbaabb928f84f45131ea5be88dcf0692783 (HEAD -> branch1)
Author: ricardo <ricardo@example.com>
Date: Tue Nov 3 00:19:52 2020 +0000
Commit to branch1
test2 | 1 +
test3 | 0
2 files changed, 1 insertion(+)
4. Git commit
在对Git存储库进行更改时,会大量使用git commit。
利用别名使git commit -m命令更高效:
$ git config --global alias.cm 'commit -m'
5. Git remote
git remote -v命令列出所有已配置的远程存储库,用别名rv来缩短它:
$ git config --global alias.rv 'remote -v'
6. Git diff
git diff命令显示不同提交文件之间或提交与工作树之间的差异,用d别名简化它:
$ git config --global alias.d 'diff'
标准的git diff命令对于较小的更改可以正常工作。
但是对于更复杂的操作,可以使用诸如vimdiff之类的外部工具来使其更加有用。
使用vimdiff创建别名dv以显示差异,并使用-y参数跳过确认提示:
$ git config --global alias.dv 'difftool -t vimdiff -y'
使用如下命令可以对比两个文件的差异:
$ git dv 33559c5 ca1494d file1
7. Git config list
gl别名使列出所有用户配置变得更加容易:
$ git config --global alias.gl 'config --global -l'
8. Git search commit
Git别名使您可以在前缀前面加上!来定义更复杂的别名,例如执行外部Shell命令。
你可以使用它来执行自定义脚本或更复杂的命令,包括shell脚本。例如,定义se别名以在提交中搜索:
$ git config --global alias.se '!git rev-list --all | xargs git grep -F'
利用这个别名可以在提交中搜索匹配字符串信息:
$ git se test2
0baa729c1d683201d0500b0e2f9c408df8f9a366:file1:test2
ca1494dd06633f08519ec43b57e25c30b1c78b32:file1:test2
自动更正别名
使用Git别名的一个高效的途径,除了上述介绍的8个常用的别名,Git还支持自动更正功能。
如果输入有误,默认情况下,Git建议使用与您键入的命令相似的命令,包括别名。
例如,如果您输入ts而不是st作为状态,则Git将建议正确的别名:
$ git ts
git: 'ts' is not a git command. See 'git --help'.
The most similar command is
st
如果启用了自动更正,Git将自动执行正确的命令:
$ git config --global help.autocorrect 20
$ git ts
WARNING: You called a Git command named 'ts', which does not exist.
Continuing in 2.0 seconds, assuming that you meant 'st'.
## branch1
?? test4
结语
git是一款开发者必备的工具,无论是前端、后端、算法,如果涉及团队开发,就很难绕过git。
本文只是介绍了一些git高级用法,如果你还不具备git的基本知识,可以系统的学习一下它的常用命令,分支、标签、合并、回滚、版本管理等等,都值得详细了解一下。

1186

被折叠的 条评论
为什么被折叠?



