是否有一种方法可以确定Git分支是何时创建的?我在我的repo中有一个分支,我不记得创建了它,我想也许看到创建时间戳会唤醒我的记忆。


当前回答

如果您想获得所有分支的详细信息

for i in `git branch -r | tail -n +2 `;do git log --reverse $i|grep -A 2 -B 2 `echo $i | awk -F'origin/' '{print $2}'` |head -n 4; done

其他回答

(10年后)

git log [--remotes] --no-walk --decorate

由于没有存储关于分支创建时间的信息,因此它所做的是显示每个分支的第一次提交(——no-walk),其中包括提交日期。对于远程分支使用——remotes,对于本地分支省略它。

因为在创建另一个分支之前,我至少要在一个分支中提交一次,这允许我追溯几个月的分支创建(和特性开发启动),以用于文档编制。

来源:stackexchange上的AnoE

如何通过Github GUI知道

我展示了所有的答案,没有人用UI给出答案。如果有人想看到分支是通过Github UI创建的。

进入洞察标签。 在侧栏中选择Network选项卡。

您可以看到分支的创建,如下所示

Pro Git§3.1 Git分支-什么是分支有一个很好的解释什么是Git分支

Git中的分支只是一个轻量级的指向[A]提交的移动指针。

由于分支只是一个轻量级指针,git没有明确的历史或创建日期的概念。“但是等一下,”我听到你说,“git当然知道我的分支历史!”嗯,算是吧。

如果您运行以下任一项:

git log <branch> --not master
gitk <branch> --not master

你会看到看起来像“你的分支的历史记录”,但实际上是一个从“分支”可以到达的提交列表,而从master不能到达。这为你提供了你想要的信息,但当且仅当你从未将'branch'合并回master,并且自创建以来从未将' master '合并到'branch'。如果你们已经合并,那么这段分歧的历史就会崩溃。

幸运的是,reflog通常包含您想要的信息,正如这里的各种其他答案所解释的那样。用这个:

git reflog --date=local <branch>

以显示分支的历史。该列表中的最后一个条目(可能)是您创建分支的点。

如果分支已经被删除,那么'branch'不再是一个有效的git标识符,但你可以使用这个来代替,它可能会找到你想要的:

git reflog --date=local | grep <branch>

或者在Windows cmd shell中:

git reflog --date=local | find "<branch>"

请注意,reflog不能在远程分支上有效工作,只能在您在本地工作过的分支上有效工作。

我找到了最好的方法: 我总是检查用这种方法创建的最新分支

git for-each-ref --sort=-committerdate refs/heads/

如果您想获得所有分支的详细信息

for i in `git branch -r | tail -n +2 `;do git log --reverse $i|grep -A 2 -B 2 `echo $i | awk -F'origin/' '{print $2}'` |head -n 4; done