在git中,我想获取books/trunk
的历史记录条目,然后将其移至books
。我需要的是与这些帖子相反的东西:
How can I rewrite history so that all files are in a subdirectory?
对于好奇,这个问题的动机是我正在使用svnadmin合并一对svn repos并将它们转换为git。一旦你转换为git,答案也可以用来重写旧的svn历史。
答案 0 :(得分:0)
以下适用于Linux bash:
git filter-branch -f --tree-filter \
'test -d books/trunk && mv books/trunk/* books/trunk/.[^.]* ./books || echo "Nothing to do"' \
HEAD
请注意,尽管排除了..,但仍然会出现无法移动的错误./ .. - 请忽略这些。 (我欢迎有人清理它,但请先测试一下。)