【问题标题】:Fastest way to get most recent commit for a file in git在 git 中获取文件最近提交的最快方法
【发布时间】:2015-07-02 22:04:03
【问题描述】:

关于获取文件的最新提交有几个答案。答案归结为“git log --all --pretty=format:%H -- path。”

注意 --all 以搜索整个图表。

git log 很慢。每次操作似乎需要几秒钟,当您有数千个文件要查看时,这会很痛苦。有没有更快的管道方式来做到这一点?

【问题讨论】:

  • git 日志应该是即时的。您还可以使用 -n 1 选项限制 1 次提交,因为您只需要最新的。不知道它是否会加速,但值得一试。另外,如果你在 Windows 上,还有其他原因 git 通常会很慢
  • git 日志本身几乎是瞬时的。 git log -- 路径不是。
  • 编辑注意使用--all。

标签: git


【解决方案1】:

您可以使用此命令。这对我来说在我工作的大型存储库上运行得非常快(数百万行代码,历史可以追溯到 10 年)。

git log -n 1 -- filename
  • -n 1 为您提供最近的提交
  • -- filename 将 git 日志范围缩小到您想要的文件名

【讨论】:

  • 这太慢了,如问题中所述。我应该调查一下它为什么这么慢吗?
  • 已编辑以注意使用 --all。
  • 如果文件的最后一次提交是很久以前的,git 可能需要一段时间才能找到它。本质上,Git 必须在每个提交的对象中搜索路径名。然后,如果分支有很多合并,git必须从每个合并中分支出来,搜索每个父级的历史等等......
  • 有些文件几乎可以肯定是很旧了,但有些不是,而且所用的时间似乎相似。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多