Git 中自己常用别名总结

本文主要记录自己在使用过程中用到的别名,方便快速进行配置。

前言

Git 并不会在你输入部分命令时自动推断出你想要的命令。 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。

定义语法

1
2
3
4
5
6
7
git config --global alias.别名 "组合命令"

# 示例
git config --global alias.cm "commit -m"

# 今后提交时,只需要输入下列命令即可
git cm "message"

设置别名自动更正

使用 Git 别名的一个很酷的好处是它与自动更正功能的原生集成。如果你犯了错误,默认情况下,Git 会建议使用与你输入的命令相似的命令,包括别名。

1
git config --global help.autocorrect 20

常用别名

直接将下面的代码整体复制到 powershell 中运行即可,包括注释也可以一并复制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 获取所有配置的别名
git config --global alias.alias "config --get-regexp alias"

# 获取最后一次提交的日志
git config --global alias.last 'log -1 --stat'

# 显示log
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

# 列出所有分支,并按提交日期对它们进行排序,优先显示最新的 git 分支
git config --global alias.br "branch -a --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate"

# 快速提交代码
git config --global alias.cm "commit -m"

# 修改 commit 内容
git config --global alias.cmm "commit --amend"

# checkout 简写
git config --global alias.ck "checkout"

# merge 简写
git config --global alias.mg "merge"

# pull push
git config --global alias.pl "pull"
git config --global alias.ps "push"

# add 和 commit 一起生效
git config --global alias.save "!git add -A && git commit -m"

git 中如果内容过长,想要退出时,可以按 q 退出

如果别名扩展的前缀是感叹号!,则它将被视为 shell 命令。例如:

1
git config --global alias.save "!git add -A && git commit -m 'feat: 新增别名'"

配置文件位置

git 的全局配置文件为:C:\Users\%username%\.gitconfig

其中别名的配置内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
[alias]
last = log -1 --stat
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
alias = config --get-regexp alias
br = branch -a --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate
cm = commit -m
cmm = commit --amend
ck = checkout
mg = merge
pl = pull
ps = push
save = git push add -A && git commit -m