按最后提交日期排序分支
摘要
本文提供了一个技巧,通过配置 Git 来按最后提交日期对分支进行排序,从而简化了开发者的工作流程,相较于使用自定义脚本。
暂无内容
查看缓存全文
缓存时间: 2026/08/30 21:46
# 按最后提交日期排列分支
来源:https://ryangreenberg.com/til/git-branches-by-commit-date/
### 2026年8月24日 上午9:55
我的 git 分支太多了,和很多人一样,我编写了一个复杂的脚本来显示最近的分支。几年里我每天多次运行这个命令:
``
function branches {
for k in `git branch | sed "s/^..//"`; do
echo -e `git log --color -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\\t"$k";
done | sort
}
``
这个命令的输出将日期作为第一列,以便`sort`命令能正常工作。实际上,使用现代 git 完全没有必要这样做。只需配置 git 分支按最后提交日期排序:
``
git config branch.sort committerdate
``
你也可以临时使用:`git branch --sort committerdate`。
还能按哪些字段排序?手册说明:“支持的键与 `git-for-each-ref(1)` 中的相同。”`git-for-each-ref` 的手册页(https://man.freebsd.org/cgi/man.cgi?query=git-for-each-ref&sektion=1&format=html)列出了许多字段,其中一些作为排序键我觉得没什么意义。以下是一些有趣的字段:
- `authordate`、`committerdate`、`creatordate`、`taggerdate`
- `contents:size`:提交或标签信息的字节大小。
- `push`:表示显示的引用的 `@{push}` 位置的本地引用名称。
- `refname`:引用的名称(`$GIT_DIR/` 之后的部分)(这是默认值)。
- `upstream`:可视为显示引用的“上游”的本地引用名称。
Git
相似文章
@realchendahuang:几天前,我发布了一篇关于 Git Worktree 的讨论,评论区有很多具体的经验分享……
本文整理了 Git Worktree 讨论中的经验,分享了高效分支管理、自动化脚本和辅助工具的策略,以增强并行开发工作流。
拆分 Git 提交
文章介绍了一个用于拆分 Git 提交的简单命令,与旧方法相比简化了流程,并引用了外部资源以提供上下文。
Git history 命令值得更多关注
文章重点介绍了新的 `git history` 命令及其 `fixup`、`reword` 和 `split` 子命令,这些命令提供了原子化且感知分支的提交历史编辑功能,带来了类似 jj 的益处,而无需切换版本控制系统。
接受混乱的 git 历史
一篇博客文章,讨论两种 git 工作流理念——频繁提交与谨慎变基——并解释为何在大型团队中,鉴于团队的韧性,混乱的历史是可以接受的,文中还提到了 GitHub 的新堆叠 PR 功能。
在 GNU Emacs 中随时间浏览 'git blame' 的几种方法
探讨在 GNU Emacs 中随时间使用 git blame 的方法,提供浏览提交历史的实用技巧。