git 别名 alias 配置:用短命令提升效率
git status 打太累?想一条命令看图形历史?git alias 能把你常用的长命令缩成短词。本文给常用别名清单、配置方法,以及进阶的自定义命令别名。
场景:每天敲几十次 git status、git commit、git log --oneline,手指都酸了。git alias 能把这些高频长命令缩成 git st、git 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。这些是高频推荐,可大幅减少打字。