最近结帐分支的git别名

时间:2016-07-27 13:54:23

标签: git alias

我最近发现这个命令可以获得最近10个签出分支的列表。

git reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n10

我想为此调用创建一个别名" git recent",但是当我尝试运行config命令时,它会抛出错误。 " 事件未找到"

git config --global alias.recent 'reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n10'

无论如何都要将这个复杂的命令作为别名。如果有人知道如何将它作为一个别名,除了数字参数之外,也会非常感激。命令末尾的 -n10 表示要返回多少个分支。

3 个答案:

答案 0 :(得分:2)

这是针对任何人在这个问题上发生的事情而且这个命令对他们感兴趣。我确定了一种方法。

对于一个我放弃尝试使用git config命令执行此操作。我改为打开git配置文件并以这种方式添加了别名。 Adding git aliases

其次我确定我的脚本是正确的我只需将其添加为一个函数。 my_alias =&#34;!f(){<您的复杂命令>}; F&#34; How to add Advanced alias template in git

这是我别名的一个例子。

[alias]
    recent = "!f() { git reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n${1-10}; }; f"

答案 1 :(得分:1)

虽然与您的要求略有不同,但如果找出最近更改的分支可能更有意义。

在这种情况下,git branch实际上有一个--sort=<key>选项,可以打印按给定键排序的分支,例如:

git branch --sort=-committerdate -v

这将按committerdate对分支进行排序,但按照-中前缀-committerdate的指定进行反转。并且还打印最新的提交,设置别名,例如br,运行此命令:

git config --global alias.br "branch --sort=-committerdate -v"

请参阅git-branch manual

答案 2 :(得分:0)

&#34;未找到事件&#34;来自你的bash,它解释了命令行中的! ...你在第二个命令中混淆了你的单引号。应该清楚如何解决这个问题;如果你无法搞清楚......

双引号也不起作用:

> echo '!'
!
> echo "!"
bash: !: event not found

提示:你可以制作外引号'然后在里面使用",这将从bash中逃脱包括!在内的完整命令。

我现在没时间给你这个陈述,但我相信你马上就能弄清楚......;)