我遇到一个关于运行一些Git命令的问题,这些命令在Ruby文件名中包含空格,例如:
aaa = "xxxxxxx/xxxx/BOM\ Explosion.txt"
`git update-index --assume-unchanged -- #{aaa}`
或
aaa = "xxxxxxx/xxxx/BOM Explosion.txt".shellescape
`git update-index --assume-unchanged -- #{aaa}`
我已尝试过上述任何一种方法来逃避空间并在Git Bash中运行它,但它们都不起作用,并显示错误消息:
fatal: Unable to mark file 'xxxxxxx/xxxx/BOM
Updated git index
任何人都有一些想法?
答案 0 :(得分:2)
如果您单独指定参数,则可以在很大程度上忽略转义问题:
system("git", "update-index", "--assume-unchanged", "--", aaa)
这会直接传递参数,而shell不会解释它们。这是正确传递它们的最可靠方法。