gpt4 book ai didi

git - branch 什么时候从 master 分支出来的?

转载 作者:太空狗 更新时间:2023-10-29 14:41:29 26 4
gpt4 key购买 nike

几天前,我在终端中从 master 分支了当前分支。从那以后,我做了一些提交,但是当我输入 git log 时,我看到了以前的提交,我在当前分支上所做的,以及其他人在 master 上所做的。只能假设,在其他人的提交和我的提交之间的某个地方,我会(在 master 分支上)输入

git checkout -b newbranch

有没有 git 命令可以告诉你 newbranch 从 master fork 出来的确切时间戳?

最佳答案

不是真的。那不是 git 跟踪的东西。事实上,它甚至没有跟踪 newbranch 是“来自 master”的具体分支这一事实。 (顺便说一句,我建议不要使用“fork”来指代分支之间的关系,因为“fork”在一般的 git repos 和 OSS 项目中有特定的含义。)

正如 RomainValeri 所建议的那样,在特定情况下,您可以查看与分支关联的元数据的文件系统时间戳;但这些并不能保证有任何意义。有时他们提到的文件不存在,或者在与分支创建无关的时间创建。即使它确实存在并且确实反射(reflect)了正确的时间戳,也没有多大意义;因为“创建分支”只意味着创建了一个新的 ref。这并不意味着它已被(或曾经被) check out ,或说明哪些 ref 将包含新提交。

可视化现在情况的最简单方法是获取显示分支和其他引用位置的提交图。您可以使用类似 git log --graph --all --full-history 的东西。 (--full-history 选项可能是不必要的,但由于关键是我们不确定发生了什么,所以这将提供最真实的画面。)或者您可能会找到一个 GUI使阅读更容易;当我需要查看“全局”时,我经常使用 gitk --all --full-history

请记住,默认情况下肯定会显示创建分支之前的提交。也就是说,如果你有

A -- B -- C <--(master)
\
D <--(newbranch)

那么 D 的日志默认包括 ABD,因为这是newbranch 中代码的完整历史记录。如果您看到 C,则表明您根本不在 newbranch 上(而且上图不是您真正 在那种情况下有)。

剩下的可能是切线,但以防万一......

默认情况下包含 AB 的原因是,同样,git 不知道/关心哪个分支是从哪个其他分支创建的,或者类似的那。在上图中,newbranch 可能是原始分支,master 可能是从 B 分支出来的;对于 git,这与 newbranchmasterB 分支是一样的。或者 D 可以在分离的 HEAD 状态下创建,并且 newbranch 可以在事后创建以保留 D。或者可能会发生很多其他事情。

如果你想只是newbranch上添加的提交,你可以说像git log master..newbranch这样的东西(告诉记录以排除属于 master 历史的任何提交)。

关于git - branch 什么时候从 master 分支出来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310789/

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