我有很多本地分支。运行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}