问题标签 [git-ls-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
530 浏览

git - 我如何让 `git ls-files` 在子目录中工作?

我想运行git ls-file --modified以获取具有未暂存更改的文件列表。我惊讶地发现它可以在根目录中工作,但不能在任何子目录中工作,它只打印子目录中的文件(git status例如,与之相反)。

重现步骤:

我怎样才能在这里改变 git 的行为?

0 投票
1 回答
369 浏览

git - 排除在 `git ls-files` 中暂存为已删除的文件

git ls-files在脚本中使用来收集 git 跟踪的所有文件。不幸的是,如果您rm的文件(而不是git rm)它不再存在于文件系统中,但它仍将由git ls-files

所以问题是:是否有一种简单而有效的方法可以git ls-files输出本身或通过事后过滤(使用例如bash)排除文件系统上不再存在的文件?就像是

背景:我想创建一个 CMake 虚拟目标,它包含项目目录中的所有文件(即由 git 跟踪)。我使用类似的东西

生成文件列表。但不幸rm的是 ing 一个文件并且尚未暂存更改将导致错误,因为 CMake 无法再找到该文件..

更新:在我的编辑之前,我正在谈论git rming 一个文件 - 这将由git ls-files. 但问题仍然存在:如果有人删除了一个文件(不使用 git)git ls-files将列出它(我遇到了麻烦)。

0 投票
1 回答
103 浏览

git - Git - 按分支/标签名称递归列出文件

我想在不克隆所有远程文件的情况下查看文件树。是否可以使用 git 命令?

git版本2.21.0

我当前的命令如下:

我怎样才能尽可能快地只获取 .html 文件?我的回购真的很大。我只需要 .html 文件。

0 投票
0 回答
178 浏览

bash - 使用 rsync --delete 未删除文件

如果文件的输入由 git ls-files 给出,rsync --delete 不起作用

这是用于同步两个 git 存储库,其中一个是原始版本,另一个是 rsync 备份版本。

我希望 orig_repo 的某些子目录中的文件在 sync_repo 中同步,包括在 orig_repo 中删除的文件在 sync_repo 中删除。

下面的代码同步两个目录,唯一的问题是它不会删除目标端不再存在于源目录中的文件。

git ls-files -z sub_dir1/ sub_dir2/ | rsync --omit-dir-times --chmod=u+w --files-from=- -av0 source_repo/ destination_repo/

我尝试添加 --delete 标志,如下所示:

git ls-files -z sub_dir1/ sub_dir2/ | rsync --omit-dir-times --chmod=u+w --files-from=- -av0 --delete source_repo/ destination_repo/

那没起效。原因是,当我们将文件删除为: git rm file1

git ls-files 输出单个文件名而不是目录,因此目标端不知道已删除的文件。因此,我尝试了

find sub_dir1/ -type d -print | rsync --omit-dir-times --chmod=u+w --files-from=- -av0 --delete source_repo/ destination_repo/

它将所有文件同步到destination_repo,但不同步到特定的子目录(sub_dir1、sub_dir2),因此它不能按预期工作。

我需要两个存储库都应该正确同步。

0 投票
2 回答
89 浏览

git - 可以从 git 缓存中读取文件吗?

我可以使用以下命令查看文件列表

想知道是否可以读取列出文件的内容?

0 投票
1 回答
40 浏览

git - 在 Git repro 的历史记录中搜索特定文件

如何在我的 git 存储库的历史记录中搜索特定文件类型?(例如 *.log)

我知道我可以在当前状态或特定提交中搜索 ls-files,但我想搜索所有提交。这确实包括在早期提交中已从分支中删除的文件。

最终结果应该列出所有文件名和文件生效的提交。使用该列表,我可以返回文件的早期版本并查看它。

0 投票
2 回答
88 浏览

git - git ls-files - 根据文件的 .gitattributes 查询文件的未记录语法 - git ls-files ':(attr:filter=lfs)'

将 git lfs ls-files 与 git ls-files ':(attr:filter=lfs)' 进行比较是检测非 lfs 管理的 lfs 文件的可靠方法吗?使用 git ls-files 语法,根据文件的 .gitattributes 查询文件(在 filter=lfs 的特殊情况下)

问题是,虽然它实际上没有问题,但它不是文档中解释的东西 - https://git-scm.com/docs/git-ls-files

那么,这是我在文档中遗漏的东西,还是一些未记录的功能?

0 投票
1 回答
107 浏览

git - git lfs ls-files -I filter 不适用于非 ASCII 文件夹名称

-I即使过滤器以八进制编码传递,git lfs ls-files过滤器似乎也不适用于非 ASCII 文件夹名称,这可以通过下面的 bash 脚本确认:

虽然在我们的特殊情况下可能不会遇到具有非 ASCII 字符的文件夹,但它仍然是一个小麻烦,并且可能是一个有效的用例。

那么,我做错了什么,还是只是git lfs ls-files -I不支持带有非 ASCII 字符的过滤器?

0 投票
1 回答
363 浏览

linux - 为什么 git ls-remote 和 git ls-files 会因某些相对路径而失败?

假设我有一个 git 仓库~/dev/company/products/company-common。我尝试从其他几个文件系统位置执行ls-filesls-remote在该存储库上执行。所有的工作,除了最后一个。最后一个不起作用的原因可能是什么?

(注意我有一个 2 行 bash 提示符):

所涉及的目录都不是符号链接。我只显示了每个命令的一行输出(最后一个除外)

0 投票
2 回答
932 浏览

git - git ls-files 排除目录中的文件

我正在尝试运行git ls-files并从中排除特定目录。该--exclude标志是否仅排除文件模式,而不排除目录?

git ls-files -x */util/*