【问题标题】:How to git rm a file containing *如何 git rm 包含 * 的文件
【发布时间】:2020-06-15 02:07:58
【问题描述】:

由于打字的意外,我最终在 repo 中找到了一个以 * 字符结尾的文件。我正在使用 Bash。

我们将文件命名为"bin/abc*"。还有bin/xyz 和其他以bin/abc 开头的文件,例如bin/abc1bin/abc2

我尝试了很多策略,包括:

  1. $ git rm bin/abc\*,删除所有other文件,但不删除"bin/abc*"
  2. $ git rm bin/abc[*],删除所有other文件,但不删除"bin/abc*"
  3. $ git rm bin/abc\\*,不识别文件;
  4. $ git rm bin/abc[^a-z],不识别文件;
  5. "git rm "bin/abc*",删除所有other文件,但不删除"bin/abc*"

我的想法已经用完了。

【问题讨论】:

  • rm "bin/abc*" && git add bin
  • 让我想起了一个典型的 unix 新手问题:如何仅使用 rm 删除名为 -rf 的文件?如果一个人不能运行rm -rf,那怎么办? rm ./-rf! :-)))

标签: git wildcard rm


【解决方案1】:

假设文件被跟踪,请将文件名放在引号中,例如

git rm "bin/abc*"

如果未跟踪,请使用rm 而不是git rm

rm "bin/abc*"

【讨论】:

  • 谢谢,但是,不。与 1 和 2 相同。但是,将用这种情况更新我的问题。
  • 您完全确定该文件名为bin/abc*?那应该可以。
  • 该文件是否被跟踪git rm 仅对跟踪的文件进行操作。如果不是,请尝试rm "bin/abc*"
  • @MattWilson,我添加了第二个版本,以防文件未被跟踪。引用肯定会起作用。
  • 大家好,是的,它已被跟踪。当然,它不被称为“abc *”,更长的时间,但基本上我所展示的内容正确地表明了那里的内容,即许多跟踪的文件,所有文件都共享蒸汽的第一部分,除了一个是正常的,一个以 splat 结尾。
猜你喜欢
  • 2012-09-06
  • 2012-03-20
  • 2023-03-16
  • 2015-08-05
  • 2012-09-17
  • 2014-10-27
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多