将项目文件和目录移动到子目录并保留历史记录时发出警告

时间:2014-11-15 15:20:47

标签: git

我有一个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 ./

1 个答案:

答案 0 :(得分:2)

只需使用git mv即可。只需确保你不在移动提交中添加任何其他内容,以便git更容易检测重命名。 Git重命名检测是IMPLICIT。如果您删除文件并以其他名称添加,git status会告诉您已重命名。

您可以使用

查看重命名的文件历史记录
git log --follow <file>