繁体   English   中英

Git全局别名删除不在远程的本地分支

[英]Git global alias to remove local branches not on remote

我有这个bash代码,它修剪了遥控器上不存在的本地分支:

git fetch --prune && git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d

我想把它变成一个git全局别名 ,所以我可以像这样运行所有的魔法:

git cleanup

到目前为止我正在尝试这个(但它不起作用):

git config --global alias.cleanup "git fetch --prune && git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d"

它抱怨“git”不是命令。 我尝试制作第一个git a !git但是它只列出了git config所有选项,就好像我的整个别名命令错了。

注意

我知道这对于bash别名来说并不是太棘手,但是我想尝试使它成为一个git别名,这样它就像是一个git命令一样运行。

尝试这个:

$ git config --global alias.cleanup '!bash -c "git fetch --prune && git branch -r | awk '"'"'{print $1}'"'"' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '"'"'{print $1}'"'"' | xargs git branch -d"'

或者,只需打开文件~/.gitconfig并添加:

[alias]
    cleanup = !bash -c \"git fetch --prune && git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d\"

然后确认:

$ git config --list| grep alias
alias.cleanup=!bash -c "git fetch --prune && git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM