【问题标题】:list all tracked files in every branch列出每个分支中的所有跟踪文件
【发布时间】:2023-02-03 21:47:44
【问题描述】:

我知道可以在给定的分支中使用 git ls-treelist all tracked files。 有没有一种有效的方法来列出所有跟踪的文件在所有分支机构

当然可以编写一个小脚本,例如:

#!/bin/bash
(
  for b in $(git branch --no-color|tr '*' ' '|tr -s " "|cut -d " " -f 2)
  do
     git ls-tree -r "${b}" --name-only
  done
)| sort | uniq

然而,当有许多分支时,这似乎相当低效,尤其是如果像往常一样在所有分支中跟踪大多数文件。

有没有更有效的方法来列出所有跟踪的文件?

【问题讨论】:

    标签: git


    【解决方案1】:

    问题在于 Git 没有“所有跟踪文件”的概念;这个想法毫无意义。 Git的概念正是ls-tree所表达的概念:对于任何给定的提交(或其他树状对象),它包含哪些文件?

    好吧,这显然是 Git 可以做的,因为任何树状的。碰巧只对那些具有指向它们的分支名称的提交的树状对象感兴趣。所以没有“大道”来收集这些信息;您只需指定您感兴趣的提交,然后逐一查看它们。

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 2015-12-25
      • 2022-07-11
      • 2016-08-09
      • 2011-10-18
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 2020-09-19
      相关资源
      最近更新 更多