gpt4 book ai didi

git - 如何从远程获取git分支的创建时间?

转载 作者:行者123 更新时间:2023-12-02 20:21:51 33 4
gpt4 key购买 nike

我想知道分支的创建时间。而且我无法使用“git reflog”,因为分支刚刚从远程 checkout 。所以在本地,只有我的 checkout 的重新记录。我使用 git log 并获得了大量日志,包括其他分支。我怎样才能获得时间?

最佳答案

git 不跟踪分支的创建时间。最接近的是,如果您对提交拓扑做出某些假设,则可以检查与分支相关的第一次提交的日期。

假设你有

x -- o -- x -- x <--(master)
\
A -- B -- c <--(feature)

现在看来,feature 是在 o 创建的,然后 A 被提交给 feature(后跟 BC)。这不一定是真的,并且 git 不会跟踪任何可以告诉你它是否正确的信息,因为在 git 中,分支只是指向单个提交的指针(按照约定,它通常在添加提交时以某种方式移动) )。在本例中,feature 指向 C,这就是我们确定了解的关于 feature 的全部内容。

(我们可能还知道分支是如何在本地移动的 - 但前提是它已在本地移动。我们可能还知道有关将分支与远程关联的一些信息,我想您可以尝试从远程提取信息.. .但它通常也不知道分支何时创建。)

但直觉上,许多人认为 feature 包含提交 ABC(也可能拥有自己的生命,从 o 开始)。在某些工具中这是准确的;但 git 中并非如此。

因此,您可以使用提交者日期或提交的作者日期,具体取决于您想要了解的内容。以下是一些看待它的方法:

您可以使用A的作者日期。如果分支被重新定位,则该分支应保持不变,并且此时可能早于其父级的作者日期;因此,这不一定会告诉您何时可以在 o 首次找到拓扑分支点,但它会给出分支开发何时开始的合理估计。您可以找到该值:

git rev-list --format=%ad master..feature |tail -n1

如果您可以排除 rebase ,那么您可以估计开发是在 A 的作者日期之前的某个时间开始的,有时是在 o 的作者日期之后的某个时间开始的。您可以获取o的作者日期为

git rev-list --format=%ad -n1 $(git merge-base master feature)

无论哪种情况,您都可以使用提交日期而不是作者日期;但在这种情况下,请注意, rebase feature 会创建新的提交(A' 而不是 A 等),因此提交日期会更改。因此,如果你想知道开发何时开始,这不太可靠;但如果你想知道拓扑分支点何时出现在o处,也许更可靠。您可以使用 %cd 代替上述命令中的 %ad

关于git - 如何从远程获取git分支的创建时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51190098/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com