Git 添加ZSH别名

Git 添加ZSH别名,git,alias,zsh,oh-my-zsh,Git,Alias,Zsh,Oh My Zsh,我对这个完全是个初学者。我正在尝试将此命令添加为ZSH别名,我想这就是我正在尝试的 git分支-合并| egrep-v^\*| master | dev | xargs git分支-d 我尝试添加以下行: 别名delete local branchs=git branch-merged | egrep-v^\*| master | dev | xargs git branch-d 在iTerm中获取更新文件后,我得到以下信息: ~ source ~/.zshrc -='cd -' ...=../

我对这个完全是个初学者。我正在尝试将此命令添加为ZSH别名,我想这就是我正在尝试的

git分支-合并| egrep-v^\*| master | dev | xargs git分支-d

我尝试添加以下行:

别名delete local branchs=git branch-merged | egrep-v^\*| master | dev | xargs git branch-d

在iTerm中获取更新文件后,我得到以下信息:

~ source ~/.zshrc
-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..
1='cd -'
2='cd -2'
3='cd -3'
4='cd -4'
5='cd -5'
6='cd -6'
7='cd -7'
8='cd -8'
9='cd -9'
_='sudo '
afind='ack -il'
...

rd=rmdir
run-help=man
which-command=whence
显然,这不是预期的结果。 关于如何添加它以使其能够自动完成并将其用作别名,是否有任何帮助


谢谢。

我确信问题在于报价。您引用了此部分:

alias delete-local-branches="git branch --merged | egrep -v "
然后是不带引号的^\*| master | dev,然后是带引号的tail

" | xargs git branch -d"
我的建议是尝试使用不同的引语:

alias delete-local-branches='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d'
或转义内部引号:

alias delete-local-branches="git branch --merged | egrep -v \"(^\*|master|dev)\" | xargs git branch -d"

我相信问题在于报价。您引用了此部分:

alias delete-local-branches="git branch --merged | egrep -v "
然后是不带引号的^\*| master | dev,然后是带引号的tail

" | xargs git branch -d"
我的建议是尝试使用不同的引语:

alias delete-local-branches='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d'
或转义内部引号:

alias delete-local-branches="git branch --merged | egrep -v \"(^\*|master|dev)\" | xargs git branch -d"

只需将函数定义放在.zshrc文件中即可

delete-local-branches () {
  git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
}

只需将函数定义放在.zshrc文件中即可

delete-local-branches () {
  git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
}

不要使用别名;改为定义一个函数。@chepner有什么区别?我试着改变了引语,并按预期工作。感谢@phdDefining函数不需要任何与函数体中的引号冲突的引号,它允许您在需要时参数化该命令,并像任何其他命令一样执行,而不是命令行中的纯文本替换。@sebazelonka:egrep-v之后的双引号关闭git之前的开始双引号。有趣的是,我需要创建的第一个别名与在iTerm中使用的用于删除本地合并分支的git命令完全相同。不使用别名;改为定义一个函数。@chepner有什么区别?我试着改变了引语,并按预期工作。感谢@phdDefining函数不需要任何与函数体中的引号冲突的引号,它允许您在需要时参数化该命令,并像任何其他命令一样执行,而不是命令行中的纯文本替换。@sebazelonka:egrep-v后面的双引号关闭了git前面的开始双引号。有趣的是,我需要在iTerm中创建的第一个别名与删除本地合并分支的git命令完全相同