我想重命名一个Git仓库中所有提交的文件。这是我尝试过的:
git filter-branch --index-filter 'git mv -k <old name> <new name>' HEAD
这个命令遍历了存储库中的所有提交,但最终出现以下消息:
警告:Ref 'refs/heads/master' 未更改
这意味着没有进行任何更改。问题出在哪里?
请注意,我想要重命名的文件在第一个提交中并不存在。因此,如果我在 git mv
命令中不使用 -k
,也就是说,如果我使用:
git filter-branch --index-filter 'git mv <old name> <new name>' HEAD`
尝试第一次提交时,Git可能会出现错误,显示“坏源...”等信息。
--tree-filter
吗?我知道它比仅索引慢,但如果它能正常工作... - knittl<old name> <new name>
' HEAD问题在于,我想重命名的文件在第一个提交中并不存在,因此git会抛出“mv: cannot stat<old name>
': No such file or director”错误。在“mv”命令之前,我该如何测试文件是否存在? - York