Скажем, у меня есть репозиторий, который включает эту структуру каталогов:Как переместить каталог в репозитории Git для всех коммитов?
repo/
blog/
_posts/
some-post.html
another-file.txt
Я хочу, чтобы переместить _posts
на верхний уровень репо, поэтому структура будет выглядеть следующим образом:
repo/
_posts/
some-post.html
another-file.txt
Этот достаточно просто с git mv
, но я хочу, чтобы история выглядела так, как если бы _posts
всегда существовал в корне репо, и я хочу иметь возможность получить всю историю some-post.html
через git log -- _posts/some-post.html
. Я предполагаю, что могу использовать магию с git filter-branch
, чтобы выполнить это, но я не понял, как это сделать. Есть идеи?
Это также * намного * быстрее использовать' --index-filter', так как он не должен проверять дерево. – Cascabel
Да, индекс -filter работает быстрее, но это не сработает, потому что показанные команды не влияют на индекс. Вам нужно делать манипуляции с индексами, только если вы хотите использовать индексный фильтр (например, 'git rm --cached' вместо' rm') – sehe
Можно ли хранить теги тоже? Похоже, они ушли в моем случае. – Michael