我目前正在尝试使用git filter-branch
重命名我的存储库中的目录。
我尝试使用的命令,到目前为止没有成功,是:
git filter-branch --tree-filter "mv engine src" --force HEAD
但这会产生以下结果:
重写dddd2d70eee09d5600f7aeb87ca8321be5ed6aee(1/888)mv:将引擎重命名为src:没有这样的文件或目录
树过滤器失败:mv engine src
我不明白为什么,因为这个简单的移动命令可以完全独立运行...找不到的目录/文件是什么,我该如何解决?
我在MacOSX 10.10.5上使用zsh,如果有帮助的话。
免责声明:我不是真的关心这里有关于git mv
或mv
的讨论,而不是那个,我已经读过了它,这不是重点。我只是想知道为什么这会失败。
答案 0 :(得分:0)
它与test && command || echo
git filter-branch --tree-filter 'test -f engine && mv engine src || echo skipped' --force -- HEAD
对于windows
和cmder(您需要将'替换为“)
git filter-branch --tree-filter "test -f engine && mv engine src || echo skipped" --force -- --all