如何重写git历史记录以便所有文件都在父目录中?

时间:2014-09-01 15:11:46

标签: git

在git中,我想获取books/trunk的历史记录条目,然后将其移至books。我需要的是与这些帖子相反的东西:

How can I rewrite history so that all files are in a subdirectory?

对于好奇,这个问题的动机是我正在使用svnadmin合并一对svn repos并将它们转换为git。一旦你转换为git,答案也可以用来重写旧的svn历史。

1 个答案:

答案 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

请注意,尽管排除了..,但仍然会出现无法移动的错误./ .. - 请忽略这些。 (我欢迎有人清理它,但请先测试一下。)

相关问题