首页/开发/Git 与协作速查/git alias 命令别名
Git 基础与命令88 条

git alias 命令别名

把高频命令缩写为短命令:alias.* 配置项,! 前缀定义执行 shell 的别名,可组合多步逻辑。

Git 与协作速查开发更新于 2026-10-13

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 影响所有仓库,写进仓库配置则只对本仓库有效,排查未生效时先看配置层级。

易错点

  • 别名不能覆盖内置命令,起了冲突的名字会被忽略,定义前先确认名称没被占用
  • shell 别名在不同系统上的引号与转义差异较大,团队共享前先在自己环境验证一遍
  • 别名只存在本机配置里,换机器就没了,重要约定应写进仓库文档或初始化脚本
  • 给危险操作起过于随手的短名会降低警惕,撤销类别名应保留明显语义
  • 在脚本里依赖个人别名会导致他人环境跑不通,自动化脚本一律写完整命令

数据来源与参考

  • Git 官方文档:git-config(alias)
  • Pro Git 2nd Edition · 2.7 技巧与窍门(别名)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌