Git命令别名创建方法及别名执行报错排查求助
嘿,我来帮你搞定这两个Git别名的问题!
创建Git别名有两种常用方式,操作都很简单:
命令行快速设置:用
git config命令直接定义,格式为git config --global alias.<别名> '<目标Git命令>'。
举个实用例子,想把git status简化成git st,就运行:git config --global alias.st 'status'这里
--global表示别名对所有本地仓库生效,如果只想给当前仓库单独设置,去掉--global即可。手动编辑配置文件:你也可以直接打开全局Git配置文件(一般在
~/.gitconfig路径下),找到[alias]区块,直接添加别名规则:[alias] st = status ci = commit -m lg = log --oneline --graph --decorate保存后,
git ci "修复登录页样式bug"就等价于git commit -m "修复登录页样式bug",用起来超顺手。处理复杂命令/非Git命令:如果别名需要执行多个命令或者非Git命令,记得在命令前加
!。比如想创建一个拉取远程主分支并合并的别名:git config --global alias.pullnmerge '!git pull origin main && git merge main'
你创建别名时写了git clone ssh://...,但Git别名本身是Git的子命令——也就是说,当你运行git gbf4364时,Git会自动把它扩展成git [你的别名内容],也就是git git clone ssh://...,多了一个多余的git,这肯定会报错呀!
正确的做法是去掉前面的git,直接写clone命令:
git config --global alias.gbf4364 'clone ssh://username@gerrit.sd.company.com:29418/projectname'
如果已经设置错了,先删除错误的别名:
git config --global --unset alias.gbf4364
再执行上面的正确命令就好啦。
你可以用这个命令验证别名是否正确设置:
git config --global --get alias.gbf4364
如果输出是clone ssh://username@gerrit.sd.company.com:29418/projectname,那再运行git gbf4364就没问题了。
内容的提问来源于stack exchange,提问作者Ritz




