Git rm



git rm 命令用于从索引和工作树中删除特定文件。通过这样做,我们将文件从项目中移除,并将其删除操作暂存到下一次提交。

  • git rm 命令从 Git 索引以及(可选)工作目录中删除文件。

  • 要仅从工作目录中删除文件(不影响索引),请使用其他命令,例如 /bin/rm

  • 默认情况下,git rm 要求文件与分支的最新提交匹配,使用 -f 选项强制删除与最新提交不匹配的文件。

  • 使用 git rm --cached 仅从索引中删除文件,将其保留在工作目录中。

  • 启用稀疏检出后,git rm 仅影响稀疏检出模式中的文件。

语法

git rm <file>…
  • git rm 用于删除由 <file> 指定的文件。

  • 使用带 -r 选项的目录名可删除目录及其所有子目录中的所有文件。

  • 虽然 git rm 'd*' 只针对给定目录中的文件,但文件通配符匹配跨越目录边界,允许 git rm 'd*' 删除多个目录中的文件。

选项

git rm 命令具有以下选项:

-f

--force

git rm -f <file>…
  • 使用 git rm 时,-f--force 选项会覆盖默认检查,该检查在删除之前验证文件是否为最新状态。

-n

--dry-run

git rm -n <file>…
  • 使用 git rm 时,-n--dry-run 选项会模拟删除过程,而无需实际删除任何文件。

  • 因为它显示将从索引中删除哪些文件,所以您可以在执行实际删除之前检查更改。

-r

--recursive

git rm -r <directory-name>…
  • 当指定前导目录名时,git rm 中的 -r 选项允许我们执行递归删除,这将删除目录及其所有内容。

  • 如果不存在此选项,git rm 将只删除文件,而不会进入子目录。

--

git rm -- <file>
  • 在 Git 中,可以使用 -- 选项将命令行参数与文件或参数列表分开。

  • 这在文件名可能被误解为命令行选项的情况下特别有用,因为它确保任何后续参数都被视为文件路径而不是选项。

--cached

git rm --cached <file>
  • 使用 git rm 时,可以使用 --cached 选项取消暂存文件并仅从索引中删除它们,而不会更改工作树中的文件。

  • 无论它们是否被更改,这些文件都将从暂存区删除,但会保留在我们的本地目录中。

--ignore-unmatch

git rm --ignore-unmatch <file>
  • 当使用带有 --ignore-unmatch 选项的 git rm 命令时,即使没有文件与提供的模式匹配,命令也会以零成功状态终止。

  • 当找不到匹配要求的文件时,这有助于防止脚本或任务中的错误。

--sparse

git rm --sparse <file>
  • 对于稀疏检出范围之外的路径,可以使用 git rm 中的 --sparse 选项修改索引条目。

  • 使用 --sparsegit rm 将更新索引,即使对于未包含在稀疏检出配置中的文件也是如此,而通常情况下,它会将更改限制在稀疏检出范围内的文件中。

-q

--quiet

git rm -q <file>
  • 使用 git rm 时,-q--quiet 选项会抑制列出每个正在删除文件的标准输出。

  • 选择此选项时,程序会删除文件而不显示每个文件的详细信息。

  • 因此,终端输出变得不那么混乱。

使用 git rm 命令后,必须提交更改才能最终从存储库历史记录中删除文件。

此外,在文件具有未提交的更改时,使用 git rm -f 命令时必须非常小心,因为使用此命令后,这些更改将丢失。

广告