如何通过最近的结帐对GIT分支的输出进行分类



我有很多本地分支。运行git branch列出了它们,它们溢出了页面。我经常想在当前检查的分支机构和我上次工作的分支之间切换,或者可能是最后一个分支。该过程是在我很幸运地记住关键字(或票证号)的情况下扫描20-30个本地分支的列表。

相反,我想说git branch,并通过结帐订单显示分支。与最近活动订购的许多程序中列出的许多项目一样,您似乎也是如此。这似乎是订单标准的明显默认选择,我很惊讶它不是git的默认值。

编辑:

我修改了我的问题,只通过结帐询问一种。我找不到分类谓词,该谓词将在每个分支的日期之前过滤git branch的输出。

列出了分支的列表分支(不是最后提交顺序):

git log -g --grep-reflog "checkout:" --format="%gs" | cat -n | sed -E "s/^s+([0-9]+).*from (.*) to .*/1 2/g" | tac

您可以用

检查其中之一
git checkout @{-nnn}

其中 nnn是分支名称之前显示的数字。要在当前分支和上一个分支之间切换,只需使用

git checkout -

您可以将上述命令与这样的新git命令相结合:

git config --global alias.lb '!git log -g --grep-reflog "checkout:" --format="%gs" | cat -n | sed -E "s/^s+([0-9]+).*from (.*) to .*/1 2/g" | tac; read -p "Aussuchen: " i; git checkout @{-$i}'

使用

git lb

显示最后使用的分支并选择其中一个。

您是否尝试过for-each-ref选项?有很多可分类的字段。

这是通过authordate

 git for-each-ref  --sort='-*authordate'

当我在自己的较小的分支集上测试它时,最近创建/检查的是顶部。

看起来这是git-ref结构中唯一的日期/时间字段:

"authordate"
"committerdate"
"taggerdate"
"creatordate"

您可以通过尝试此命令获取文档来在这里找到更多信息:

git for-each-ref --help

也许作为检查.git/refs/heads的脚本以获取更新吗?

我经常想在当前检查的分支与我上次工作的分支之间切换,或者可能是最后一个。

感谢您描述的情况给您带来困难,并询问如何实施您正在尝试的解决方案。

git有一种非常直接的处理方式。要重复您最后工作的结帐,

git checkout @{-1}

并在最后一个之前重复一个

git checkout @{-2}

最新更新