我想重命名git存储库中所有提交的文件,这是我尝试过的:
git filter-branch --index-filter 'git mv -k <old name> <new name>' HEAD
Run Code Online (Sandbox Code Playgroud)
此命令遍历了存储库中的所有提交,但最终得到了消息
警告:参考'refs/heads/master'保持不变
这意味着没有任何改变.这里出了什么问题?
请注意,这是我想重命名不存在从第一次提交的文件,因此,如果我不使用-k的git mv,我的意思是,如果我使用:
git filter-branch --index-filter 'git mv <old name> <new name>' HEAD`
Run Code Online (Sandbox Code Playgroud)
尝试第一次提交时,Git会出错,说"糟糕的源......".
Yor*_*ork 21
我终于使用以下方法解决了原来的问题:
git filter-branch --tree-filter '
if [ -f <old name> ]; then
mv <old name> <new name>
fi' --force HEAD
Run Code Online (Sandbox Code Playgroud)
现在最好使用filter-repo - https://github.com/newren/git-filter-repo:
git filter-repo --path-rename full/path/to/file.old:full/path/to/file.new
Run Code Online (Sandbox Code Playgroud)
请参阅我自己的博客页面:http://ben.goodacre.name/tech/Rename-file-for-all-previous-commits-in-Git
| 归档时间: |
|
| 查看次数: |
4255 次 |
| 最近记录: |