git alias 是什么
git alias 把高频命令缩写为短命令,写法是配置 alias.名称,值可以是去掉 git 前缀的子命令,也可以是一条以感叹号开头的 shell 命令,后者能组合多步逻辑。它只影响本机配置,团队共享时需要额外分发(如写进 dotfiles 或初始化脚本)。合理使用能显著缩短日常敲击,也能把团队约定的常用查询固定下来,减少各自发挥。
基本信息
| 配置键 | alias.<名称> |
|---|---|
| 普通别名 | 直接写子命令,如 alias.st status |
| shell 别名 | 以 ! 开头,后接 shell 命令 |
| 查看 | git config --get-regexp '^alias\.' |
| 作用范围 | --global 或 --local 分别影响全局与本仓库 |
典型使用场景
- 把一行长命令固定成短别名,减少日常敲击
- 统一团队的常用查询,例如带图形与装饰的日志视图
- 为易忘的撤销操作提供一个更直观的名字
- 用 shell 别名组合多步逻辑,如拉取并清理已合并分支
- 在新机器上一次性导入自己的别名集合
- 排查别名未生效时确认配置写在了正确的层级
常用示例
常用示例
git config --global alias.st status
git config --global alias.lg 'log --oneline --graph --decorate --all'
git config --global alias.last 'log -1 HEAD'
git config --global alias.undo 'reset --soft HEAD~1'
git config --global alias.cm 'commit -m' # 用法:git cm '内容'
git config --get-regexp '^alias\.' # 查看已定义别名两种别名形式
| 形式 | 示例 | 特点 |
|---|---|---|
| 子命令别名 | alias.co checkout | 可读性好,参数照常透传 |
| shell 别名 | alias.hello '!echo hi' | 以 ! 开头,可组合多步逻辑 |
把团队常用别名写进文档或 dotfiles,能减少口口相传造成的环境差异。
别名不能覆盖 Git 的内置子命令,命名时避开 status、commit 这类既有名称,否则定义本身不会生效。
别名与补充命令不同:别名只是本机缩写,不会改变命令能力;团队若要统一行为,应把重要查询写进文档或脚本,而不是依赖每个人各自定义。
维护别名的习惯
- 别名集合放进 dotfiles 用版本管理,换机器一条命令导入
- 命名保留语义,避免用单字母指代危险操作
- 定期清理不再使用的别名,减少理解成本
- 把团队公共别名写进仓库说明,减少环境差异带来的困惑
别名定义在哪个层级就会在哪一级生效:写进 --global 影响所有仓库,写进仓库配置则只对本仓库有效,排查未生效时先看配置层级。