使用git filter-branch --subdirectory-filter
您可以将当前存储库中的子目录自行转换为存储库。然而,我想要做的却是相反的事情:创建一个存储库,将当前存储库的全部内容作为子目录存放,保存完整的历史记录,就好像它们总是在该子目录中一样。我不想使用子模块,因为我希望该目录成为存储库的完整组成部分。`git filter-branch --subdirectory-filter`的反义词是什么?
背景:我用写一个简单的脚本任务,但是任务的范围也不断扩大,所以现在该脚本变成只是在一个大项目的子目录。它本身也没有生存点,所以没有子模块的解决方案是首选。
詹姆,谢谢,这只是事情:)至于在命令行中,它的工作方式几乎罚款,但可惜的是跳过隐藏的文件。我发现[解决方案正确地将它们放在一起](http://serverfault.com/a/122343),这也不能用于开箱即用。不幸的是,这似乎需要明确运行'bash'(git默认使用'sh'?)。所以我建议编辑你的答案,这会使代码膨胀一点,但也适用于隐藏文件。 – Septagram
编辑对我来说很有意义!我敢打赌你是对的,'git filter-branch'明确调用'sh'来运行给定的命令。 –
“bash -c”部分不是必须的......而且你必须手动移动忽略的文件。顺便说一句。由我.gitignore已被移动... – inf3rno