问题标签 [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.
git - 我如何让 `git ls-files` 在子目录中工作?
我想运行git ls-file --modified
以获取具有未暂存更改的文件列表。我惊讶地发现它可以在根目录中工作,但不能在任何子目录中工作,它只打印子目录中的文件(git status
例如,与之相反)。
重现步骤:
我怎样才能在这里改变 git 的行为?
git - 排除在 `git ls-files` 中暂存为已删除的文件
我git ls-files
在脚本中使用来收集 git 跟踪的所有文件。不幸的是,如果您rm
的文件(而不是git rm
)它不再存在于文件系统中,但它仍将由git ls-files
所以问题是:是否有一种简单而有效的方法可以从git ls-files
输出本身或通过事后过滤(使用例如bash)排除文件系统上不再存在的文件?就像是
背景:我想创建一个 CMake 虚拟目标,它包含项目目录中的所有文件(即由 git 跟踪)。我使用类似的东西
生成文件列表。但不幸rm
的是 ing 一个文件并且尚未暂存更改将导致错误,因为 CMake 无法再找到该文件..
更新:在我的编辑之前,我正在谈论git rm
ing 一个文件 - 这将由git ls-files
. 但问题仍然存在:如果有人删除了一个文件(不使用 git)git ls-files
将列出它(我遇到了麻烦)。
git - Git - 按分支/标签名称递归列出文件
我想在不克隆所有远程文件的情况下查看文件树。是否可以使用 git 命令?
git版本2.21.0
我当前的命令如下:
我怎样才能尽可能快地只获取 .html 文件?我的回购真的很大。我只需要 .html 文件。
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),因此它不能按预期工作。
我需要两个存储库都应该正确同步。
git - 可以从 git 缓存中读取文件吗?
我可以使用以下命令查看文件列表
想知道是否可以读取列出文件的内容?
git - 在 Git repro 的历史记录中搜索特定文件
如何在我的 git 存储库的历史记录中搜索特定文件类型?(例如 *.log)
我知道我可以在当前状态或特定提交中搜索 ls-files,但我想搜索所有提交。这确实包括在早期提交中已从分支中删除的文件。
最终结果应该列出所有文件名和文件生效的提交。使用该列表,我可以返回文件的早期版本并查看它。
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
那么,这是我在文档中遗漏的东西,还是一些未记录的功能?
git - git lfs ls-files -I filter 不适用于非 ASCII 文件夹名称
-I
即使过滤器以八进制编码传递,git lfs ls-files过滤器似乎也不适用于非 ASCII 文件夹名称,这可以通过下面的 bash 脚本确认:
虽然在我们的特殊情况下可能不会遇到具有非 ASCII 字符的文件夹,但它仍然是一个小麻烦,并且可能是一个有效的用例。
那么,我做错了什么,还是只是git lfs ls-files -I
不支持带有非 ASCII 字符的过滤器?
linux - 为什么 git ls-remote 和 git ls-files 会因某些相对路径而失败?
假设我有一个 git 仓库~/dev/company/products/company-common
。我尝试从其他几个文件系统位置执行ls-files
或ls-remote
在该存储库上执行。所有的工作,除了最后一个。最后一个不起作用的原因可能是什么?
(注意我有一个 2 行 bash 提示符):
所涉及的目录都不是符号链接。我只显示了每个命令的一行输出(最后一个除外)
git - git ls-files 排除目录中的文件
我正在尝试运行git ls-files
并从中排除特定目录。该--exclude
标志是否仅排除文件模式,而不排除目录?
git ls-files -x */util/*