我有一个git存储库,想要将所有文件和目录移动到目录一级 下面是当前目录并保留提交历史记录。我正在执行以下命令:
git filter-branch --tree-filter "mkdir -p carDealership;mv carDealership /tmp;mv * /tmp/carDealership;mv /tmp/carDealership ./" HEAD
并获得以下警告。有理由担心这个警告吗?
Rewrite b56d2881a63a1803f3f65d630a8f47461809720e (1/17)mv: cannot stat ‘*’: No such file or directory
Rewrite b0c533ac2658e197cb97243cc4a61d7b553add07 (17/17)
Ref 'refs/heads/master' was rewritten
还有其他解决方案。当我逐行执行以下命令时 并且提交git检测到文件已重命名,并且历史记录中存在重命名消息。 有什么更好的方法?
mkdir -p carDealership
mv carDealership /tmp
mv * /tmp/carDealership
mv /tmp/carDealership ./
答案 0 :(得分:2)
只需使用git mv
即可。只需确保你不在移动提交中添加任何其他内容,以便git更容易检测重命名。 Git重命名检测是IMPLICIT。如果您删除文件并以其他名称添加,git status
会告诉您已重命名。
您可以使用
查看重命名的文件历史记录git log --follow <file>