【问题标题】:remove deleted files from git: Argument list too long从 git 中删除已删除的文件:参数列表太长
【发布时间】:2013-06-25 06:31:02
【问题描述】:

我尝试从 git 中删除已删除的文件:

git rm `git status | grep deleted | awk '{print $3}'`

但在 ma​​c bash 中出现错误:

-bash: /usr/local/git/bin/git: Argument list too long

如果我跑...

git status | grep deleted | awk '{print $3}'

... 我成功获得了要删除的文件列表。但是如何从 git 中删除它们呢?

【问题讨论】:

  • 你在找 git add -A 吗?

标签: macos git bash


【解决方案1】:

xargs 会将命令长度限制为 shell 不会阻塞的长度,并根据需要多次调用传递的命令。

git status | grep deleted | awk '{print $3}' | xargs git rm

【讨论】:

  • 小心这个。我更喜欢在“已删除:”上使用 grep。另外,如果文件名中包含“deleted:”,它将从 git 源代码管理中删除。
  • 如果您不想删除包含文本“已删除:”的文件名,请使用“^\s*deleted:”代替。
  • 如何将它与 rm -r --cached 结合使用?简单地将 -r --cached 添加到命令中是行不通的。我得到了使用提示。
  • 万一其他人来到这里复制这个例子并像我一样感到困惑:我必须在 awk 命令中将 $3 更改为 $2。
猜你喜欢
  • 2012-07-09
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
相关资源
最近更新 更多