配置别名(Alias)
本教程共 26 篇 · 第 24 篇 · 更新于 2026-07-29 · 约 4 分钟阅读
24. 配置别名(Alias)
本节目标:给常用的长命令起短别名,减少重复敲击,提升命令行效率。
为什么要用别名
Git 命令有时候挺长的。git status、git checkout、git commit 这些天天敲的单词,每多敲一个字符都是浪费。
别名就是给命令起小名。你叫 git status 太麻烦,叫 git st 就行了。
基本用法
用 git config 设置别名:
git config --global alias.st status
--global 表示这台电脑上所有仓库都能用。不加就只对当前仓库生效。
现在试试:
git st
效果跟 git status 完全一样。
常用别名推荐
以下这些是社区里流传最广的别名,你可以直接照搬。
基础命令缩写
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
提交时可以偷懒:
git ci -m "修复 bug"
查看最后一次提交
git config --global alias.last 'log -1 HEAD'
git last
commit a1b2c3d
Author: you <you@example.com>
Date: Mon Jul 28 10:30:00 2026 +0800
修复登录 bug
取消暂存
git config --global alias.unstage 'reset HEAD --'
git unstage test.py
等价于 git reset HEAD -- test.py,把文件从暂存区撤回工作区。
漂亮的 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 lg
输出效果:彩色、有分支图、显示相对时间和作者。比干巴巴的 git log 好读多了。
一行版 log
git config --global alias.lol 'log --oneline --graph --all'
全局 vs 仓库级
| 类型 | 命令 | 生效范围 | 存储位置 |
|---|---|---|---|
| 全局别名 | git config --global alias.xx cmd | 这台电脑的所有仓库 | ~/.gitconfig |
| 仓库别名 | git config alias.xx cmd | 当前仓库 | .git/config |
全局别名适合那些通用的缩写(st、co、br)。仓库级别名适合项目特有的操作,比如这个项目特有的部署命令。
执行外部命令
别名不一定非得替换 Git 命令。加一个 ! 前缀,可以执行任意外部命令。
Tip加
!前缀后,别名可以执行任意 Shell 命令,不仅限于 Git 命令。
比如定义一个 git visual 打开 gitk(图形化历史查看器):
git config --global alias.visual '!gitk'
git visual
再比如快速打开项目主页:
git config --global alias.home '!open $(git config --get remote.origin.url)'
查看已有别名
想看你配了哪些别名,打开配置文件:
cat ~/.gitconfig
[alias]
st = status
co = checkout
br = branch
ci = commit
last = log -1 HEAD
unstage = reset HEAD --
lg = log --color --graph ...
也可以只看 alias 部分:
git config --get-regexp alias
删除别名
直接删配置文件里的对应行,或者用 git config --global --unset:
git config --global --unset alias.st
配置示例:一份完整的 .gitconfig alias 段
你可以一次性配齐这些:
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.last 'log -1 HEAD'
git config --global alias.unstage 'reset HEAD --'
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 config --global alias.lol 'log --oneline --graph --all'
git config --global alias.amend 'commit --amend'
git config --global alias.undo 'reset --soft HEAD~1'
配完之后:
git st看状态git ci提交git co main切分支git br -d old删分支git last看最后一次提交git lg看漂亮的提交图git undo撤消最后一次提交(保留修改)
别名不影响脚本
一个小提示:在写自动化脚本时,建议用完整命令而不是别名。因为别人的电脑上可能没配同样的别名,脚本跑不起来。
Note别名只影响交互使用。脚本里写完整命令更稳妥,避免在他人的机器上跑不通。
一句话总结:别名是给 Git 命令起的昵称。几个字母换来效率提升,这懒值得偷。
这章学到了什么
- 用
git config --global alias.缩写 原命令给长命令起短别名 - 常用别名:
st(status)、co(checkout)、br(branch)、ci(commit)、last、unstage、lg、lol - 全局别名对所有仓库生效,仓库级别名只对当前项目生效
- 加
!前缀可以执行任意外部命令,不仅限于 Git 命令 - 别名只影响交互使用,写自动化脚本时建议用完整命令
下一章,我们学习三大调试利器:blame、bisect 和 grep。