首页 / Git 入门教程 / 配置别名(Alias)

Git 入门教程

配置别名(Alias)

本教程共 26 篇 · 第 24 篇 · 更新于 2026-07-29 · 约 4 分钟阅读

GitGit 入门教程alias别名git config效率快捷键

24. 配置别名(Alias)

本节目标:给常用的长命令起短别名,减少重复敲击,提升命令行效率。

为什么要用别名

Git 命令有时候挺长的。git statusgit checkoutgit 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

全局别名适合那些通用的缩写(stcobr)。仓库级别名适合项目特有的操作,比如这个项目特有的部署命令。

执行外部命令

别名不一定非得替换 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)、lastunstagelglol
  • 全局别名对所有仓库生效,仓库级别名只对当前项目生效
  • ! 前缀可以执行任意外部命令,不仅限于 Git 命令
  • 别名只影响交互使用,写自动化脚本时建议用完整命令

下一章,我们学习三大调试利器:blame、bisect 和 grep。