Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 将项目文件和目录移动到子目录并保留历史记录时发出警告_Git - Fatal编程技术网

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

Git 将项目文件和目录移动到子目录并保留历史记录时发出警告,git,Git,我有一个git存储库,希望将所有文件和目录移动到一级目录 显示当前目录并保留提交的历史记录。我正在执行以下命令: git filter-branch --tree-filter "mkdir -p carDealership;mv carDealership /tmp;mv * /tmp/carDealership;mv /tmp/carDealership ./" HEAD 并得到以下警告。有理由担心这个警告吗 Rewrite b56d2881a63a1803f3f65d630a8f4746

我有一个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
还有其他解决办法。当我逐行执行以下命令时 commit git检测到文件被重命名,并且历史记录中存在重命名消息。 更好的办法是什么

mkdir -p carDealership
mv carDealership /tmp
mv * /tmp/carDealership
mv /tmp/carDealership ./

只需使用
gitmv
。只需确保在move-commit中没有添加任何其他内容,以便git更容易检测到重命名。Git重命名检测是隐式的。如果删除一个文件并以其他名称添加它,
git status
将告诉您该文件已重命名

您可以使用查看重命名中的文件历史记录

git log --follow <file>
git日志——遵循

您是否有充分的理由使用
过滤器分支
而不是简单地使用
git mv
?我想保持历史记录不变,但是对于新的子目录路径。问题已编辑。“什么是更好的方法?”您没有解释为什么git的重命名检测对您来说是个问题。你在寻找重命名检测没有提供的东西吗?事实证明,我不需要使用过滤器分支。谢谢你的评论,谢谢。感谢所有在这个主题中写作的人。