Git 将项目文件和目录移动到子目录并保留历史记录时发出警告
我有一个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 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的重命名检测对您来说是个问题。你在寻找重命名检测没有提供的东西吗?事实证明,我不需要使用过滤器分支。谢谢你的评论,谢谢。感谢所有在这个主题中写作的人。