我对git很新,我想为这个命令设一个别名,但我遇到了麻烦。
$items_collection = Mage::getModel('checkout/session')->getQuote()->getItemsCollection();
$items_collection->addFieldToFilter('product_id', $_product->getId());
foreach ($items_collection as $item) {
echo $item->getProduct()->getId();
}
这是这里问题的一个功能。 Remove local branches no longer on remote
该功能对我来说非常有效,但是当我尝试将其放入别名时,它会运行但不起作用。任何建议将不胜感激。这就是我的配置中的样子。
git fetch -p &&git branch -vv|grep ': gone]'|awk '{print $1}'|xargs git branch -D
答案 0 :(得分:1)
您只需在别名的定义中添加"; f"
。
也就是说:
[alias] deletedone = "!f() { git fetch -p && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D; }; f"
或运行命令的相同内容:
git config alias.deletedone '!f() { git fetch -p && git branch -vv | grep '\'': gone]'\'' | awk '\''{print $1}'\'' | xargs git branch -D; }; f'
或使别名为全局(独立于任何回购):
git config --global alias.deletedone '!f() { git fetch -p && git branch -vv | grep ": gone]" | awk '\''{print $1}'\'' | xargs git branch -D; }; f'
编辑:由于该别名的原始版本不够健壮,正如本comment所指出的,我做了一些调整以最终获得以下版本:
git config --global alias.deletedone '!f() { git fetch -p && git branch -vv | \
perl -wne '\''print "$1\n" if m/^\s*(\S+)\s+[0-9a-f]+\s+\[\S+: gone\]/;'\'' | \
xargs git branch -d; }; f'
答案 1 :(得分:1)
您正在定义一个函数但从未运行它。根据我的意见,根本没有必要定义一个。
git config --global alias.deletedone '!bash -c "git fetch -p && git branch -vv | grep \': gone]\' | awk \'{print $1}\' | xargs git branch -D" -'
不是在我可以测试它的计算机上,但它应该做你想做的事情(可能在那里有语法错误)。
在git外部调用时,调用一个新的bash实例会将它放在自己的范围内。当我不使用这种语法时,我遇到了奇怪的范围问题。