git - 如何从 git 推送中删除所有 .pdf 文件

标签 git

我有一个提交,git diff-tree --no-commit-id --name-only -r fef3ea9ff1ba8d62049fd5f3bc4e2e8a2c08bfd3输出提交中的所有文件。

这些文件位于不同的文件夹中,其中许多是 .pdf 文件

我尝试:git rm *.pdf

它说:致命:pathspec'*.pdf'与任何文件都不匹配

如何从提交中删除所有 .pdf 文件?

编辑 1

我尝试:git rm -r *.pdf 它给出:

fatal: pathspec '*.pdf' did not match any files

编辑2

sudo git rm -r */*.pdf

给出

fatal: pathspec 'MyFolder/my_file.pdf' did not match any files

my_file.pdf 是 git diff-tree 输出中列出的第一个文件

最佳答案

要删除所有 *.pdf 文件,您可以执行以下操作:

git ls-files '*.pdf' | xargs git rm

这假设文件仍然存在。

要更新最顶层的提交以删除文件(除了它更改的其他内容之外),您可以执行以下操作:

git commit --amend

要从最近历史记录中某个位置的提交中删除文件,请查找 git rebase --interactive 并在使用 标记要更改的提交后执行上述两项操作>在呈现给您的 TODO 列表中编辑

要从埋藏在历史深处的所有提交中删除文件,请查找 git filter-branch

在所有情况下,有关重写已发布历史的警告都适用。

关于git - 如何从 git 推送中删除所有 .pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40879523/

相关文章:

git - 检查 git 暂存区可能吗?

git - git-如何为git prune创建无法访问的提交?

git - 我怎样才能确保我的提交真的发生了?

git - 推送到远程 git 服务器

git - 将 GIT 和 CDN 用于静态内容

git - `git rebase` 没有更新分支?

git - 使用 Maven SCM 检查 Git 存储库并切换到特定分支

git - 如何链接到 GitHub 上的特定行号

git - 当你混合两个不同的存储库时,如何删除 git 中最后一次推送的所有提交?

linux - 如何获取 Git/GitHub 存储库的 JSON 表示