首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正在从Git中删除敏感数据。“致命:不明确的参数'rm'”

正在从Git中删除敏感数据。“致命:不明确的参数'rm'”
EN

Stack Overflow用户
提问于 2014-01-28 08:23:26
回答 1查看 5.4K关注 0票数 21

我正在尝试运行以下命令:

代码语言:javascript
复制
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch filename.js' --prune-empty --tag-name-filter cat -- --all

但是我一直收到这个错误:

代码语言:javascript
复制
fatal: ambiguous argument 'rm': unknown revision or path not in the working tree
.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-28 15:52:12

这取决于您使用的shell。

例如,在Windows上使用msysgit,请参阅issue 477

单引号对CMD没有特殊意义。不要期望它们与POSIX shell的工作方式相同。调用过滤器-如下所示的分支:

代码语言:javascript
复制
git filter-branch --commit-filter "GIT_COMMITTER_NAME=void GIT_AUTHOR_NAME=void GIT_COMMITTER_EMAIL=just.a.test@kernel.org GIT_AUTHOR_EMAIL=just.a.test@kernel.org; git commit-tree \"$@\"" HEAD

多行:

代码语言:javascript
复制
git filter-branch --commit-filter "GIT_COMMITTER_NAME=void \
                                   GIT_AUTHOR_NAME=void \
                                   GIT_COMMITTER_EMAIL=just.a.test@kernel.org \
                                   GIT_AUTHOR_EMAIL=just.a.test@kernel.org; \
                                   git commit-tree \"$@\"" HEAD

正如在"How to pass a programmatically generated list of files to git filter-branch?“中提到的那样

各个...-filters的每个参数都需要是一个单独的字符串。该字符串将保存为shell变量。

因此,请确保将'git rm --cached --ignore-unmatch filename.js'视为您所在的shell中的一个字符串。

正如Constantine Ketskalo指出的那样,in the comments

Windows10,PyCharm,GitPython,同样的命令。

只需在字符串中将'更改为",它就起作用了!

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21394563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档