这取决于您使用的外壳。
在 Windows 上,例如使用 msysgit,请参阅问题 477:
单引号对 CMD 没有特殊含义。不要期望它们与 POSIX shell 一样工作。像这样调用过滤器分支:
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
多行:
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
如“如何将程序生成的文件列表传递给git filter-branch
? ”中所述
各种参数的每个参数都...-filters
需要是一个字符串。该字符串被保存为 shell 变量。
因此,请确保'git rm --cached --ignore-unmatch filename.js'
在您所在的外壳中被视为字符串。
正如康斯坦丁·凯茨卡洛在评论中指出的那样:
Windows 10、PyCharm、GitPython,与所讨论的命令相同。
只需更改'
为"
字符串内部即可!