Git无法直接查分支创建时间,因分支仅为指向提交的轻量指针;最接近的方法是用git reflog查看本地创建记录(如“branch: Created from HEAD”),或通过git for-each-ref获取分支所指commit的作者和时间。

git log 查不到分支创建时间,因为分支只是指针
Git 的分支本质上是轻量级的指针,指向某个提交(commit),它本身不记录创建时间或作者。所以 git branch -v 或 git show-branch 都不会显示“分支创建时间”。你真正能查到的,是该分支所指向的**首次提交时间**(即分支第一次被创建时指向的那个 commit),或者更常见的是——该分支**最后一次被更新的时间**(比如 git push 或 git merge 后的最新 commit 时间)。
用 git reflog 查看本地分支创建/切换记录
git reflog 是最接近“查分支创建时间”的办法,因为它会记录你在本地对 HEAD 和分支指针的所有操作(包括 checkout、reset、branch 等)。只要该分支是近期在当前仓库创建的,且 reflog 没被清理过,就能看到类似 branch: Created from HEAD 的记录。
实操建议:
- 运行
git reflog --date=iso show <code>your-branch-name,查看该分支指针的历史变更 - 找带
branch: Created from的那条,它的日期就是本地创建时间(注意:仅限本地,不反映远程创建行为) - 如果没找到,说明 reflog 已过期(默认保留 90 天)或分支是通过
git checkout -b以外的方式创建(如从远程 fetch 后直接 checkout)
用 git for-each-ref 获取分支指向 commit 的作者和时间
虽然分支本身没作者,但它的目标 commit 有。你可以用 git for-each-ref 快速列出所有分支及其对应 commit 的作者、提交时间、提交哈希等信息:
git for-each-ref --format='%(refname:short) %(authorname) <%(authoremail)> %(authordate:iso)' refs/heads/
说明与注意事项:
-
%(authordate:iso)是 commit 的作者时间(不是 committer 时间),多数情况下就是分支“起点”时间 - 如果分支是基于某个旧 commit 创建的(比如
git checkout -b feature origin/main~5),这个时间就是那个旧 commit 的时间,而非分支创建时刻 - 想看 committer 时间(比如
git merge后产生的新 commit),改用%(committerdate:iso) - 该命令不依赖 reflog,适合脚本化批量检查
远程分支的创建者和时间基本不可靠
Git 协议本身不向远程仓库传递“谁在什么时候创建了这个分支”的元数据。GitHub / GitLab 等平台会额外记录 push 时间和用户,但这属于平台行为,不是 Git 原生命令能查到的。
你能做的有限操作:
- 在 GitHub 上打开分支页面,看 “Latest commit” 下方的 “committed by … · [time]” —— 这是最后一次 push 中最新 commit 的作者和时间,不是分支创建时间
- 用
git ls-remote origin refs/heads/*只能看到引用哈希,没有时间/作者 - 某些企业 Git 服务器可能启用了钩子(hook)来记录分支创建事件,但需提前部署,标准 Git 不提供
别指望 git 命令本身能告诉你“张三在 2024-03-15 14:22 创建了 feature/login”,这事它真不知道。能逼近的只有 commit 时间线,而分支只是这条线上一个可移动的标签。


















