只移动git索引中的文件,而不移动工作目录

只移动git索引中的文件,而不移动工作目录,git,internals,Git,Internals,在准备将多个回购合并为一个单一回购时,我希望查看我的整个回购历史记录,并在每次提交时将所有内容移动到子目录foo/ 快速(至少比--树过滤器快)的方法似乎是使用过滤器分支和--索引过滤器过滤器。但是,使用这种方法,您只能使用索引,而不能使用工作树。那么,如何为每个提交的子树添加一个新目录并将所有文件移动到其中呢 我基本上是在寻找等价的git-rm--cached,但是git-mv似乎没有提供这个选项。没有等价的git-mv--cached或git-mv--after(请参见hg-mv--afte

在准备将多个回购合并为一个单一回购时,我希望查看我的整个回购历史记录,并在每次提交时将所有内容移动到子目录
foo/

快速(至少比
--树过滤器
快)的方法似乎是使用
过滤器分支
--索引过滤器
过滤器。但是,使用这种方法,您只能使用索引,而不能使用工作树。那么,如何为每个提交的子树添加一个新目录并将所有文件移动到其中呢


我基本上是在寻找等价的
git-rm--cached
,但是
git-mv
似乎没有提供这个选项。

没有等价的
git-mv--cached
git-mv--after
(请参见
hg-mv--after
进行比较)。在我看来,应该有,但没有


所以。这有点奇怪,但它应该适用于您的情况,前提是您没有名称中包含control-a字符的文件。如果你想移动文件的整个子树,你可能会喜欢它,也许会用shell脚本以外的东西来编写它。

没有与
git mv--cached
git mv--after
等价的东西(请参见
hg mv--after
)。在我看来,应该有,但没有

所以。这有点奇怪,但它应该适用于您的情况,前提是您没有名称中包含control-a字符的文件。如果你想移动文件的整个子树,你可能会想想象一下,或者用shell脚本以外的东西来写