Git 中文手册

git 别名 alias 配置:用短命令提升效率

2026-09-06 约 3 分钟阅读

git status 打太累?想一条命令看图形历史?git alias 能把你常用的长命令缩成短词。本文给常用别名清单、配置方法,以及进阶的自定义命令别名。

场景:每天敲几十次 git statusgit commitgit log --oneline,手指都酸了。git alias 能把这些高频长命令缩成 git stgit co 这样的短词,极大提升效率。

基本配置

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch

配置后:

git st        # = git status
git co main   # = git checkout main

推荐常用别名清单

# 状态与提交
git config --global alias.st "status -sb"
git config --global alias.ci "commit -m"
git config --global alias.amend "commit --amend"

# 历史与分支
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.br "branch -a"
git config --global alias.last "log -1 HEAD"

# 撤销与暂存
git config --global alias.unstage "reset HEAD --"
git config --global alias.stashl "stash list"
git config --global alias.uncommit "reset --soft HEAD~1"

# 远程
git config --global alias.pullr "pull --rebase"

配置后用法示例:

git lg          # 漂亮的图形历史
git last        # 最近一次提交
git unstage 文件  # 取消暂存
git pullr       # rebase 式拉取

批量写入 .gitconfig

用编辑器一次加多条更省事:

git config --global --edit

在打开的 ~/.gitconfig 里加 [alias] 段:

[alias]
	st = status -sb
	co = checkout
	ci = commit -m
	lg = log --oneline --graph --all
	br = branch -a

查看与删除别名

git config --global --get-regexp alias   # 列出所有别名
git config --global --unset alias.st     # 删除 st 别名

进阶:给任意 git 子命令设别名

别名本质是命令替换,值里可以是任何 git 命令(含参数):

git config --global alias.tree "log --graph --pretty=oneline --abbrev-commit"
# git tree 即可查看提交树

甚至能组合:

git config --global alias.sync "!git pull --rebase && git push"
# git sync 一步完成拉取+推送(! 表示执行 shell 命令)

常见问题

  • 别名和已有命令冲突:如别名叫 st 不会冲突(不是内置命令);若想覆盖内置需谨慎。
  • 别名不生效:确认用了 --global 且没有更小作用域覆盖;git config --get-regexp alias 查。
  • 想别名带参数交互:简单场景别名够用;复杂交互建议用 shell 函数或脚本。

一句话速记

git config --global alias.短名 "长命令",配好 st/co/ci/lg 等高频别名,能明显提升日常效率。

?

常见问题 FAQ

git alias 怎么设置?
用 git config --global alias.短名 "完整命令"。例如 git config --global alias.st status 后,git st 就等价 git status。
别名配置文件在哪,能批量加吗?
全局别名存在 ~/.gitconfig 的 [alias] 段。可用 git config --global --edit 打开编辑,一次写入多条别名。
想给带参数的命令(如自定义 log)设别名怎么做?
直接在别名的值里写完整命令即可,如 git config --global alias.lg "log --oneline --graph --all"。别名只是命令替换,参数仍会追加。
常用的 git 别名有哪些推荐?
st=status、co=checkout、ci=commit、br=branch、lg=log --oneline --graph --all。这些是高频推荐,可大幅减少打字。