У меня есть структура каталогов в моем хранилище:
|-repository/
| | |-repository/fileOne
| |
| |-subOne/
| | |-subOne/fileTwo
| |
| |-subTwo/
| |-subTwo/fileThree
Я хочу переместить каталог subOne
в другой репозиторий. Для этого я разделяю subOne
, используя git-filter-branch
примерно так:
$ git filter-branch --subdirectory-filter subOne --prune-empty
Это оставляет меня с веткой истории, которая выглядит так:
$ git log --oneline
0c0ea11 subOne history
6318bba subOne history
c96fddb Initial commit
Это именно то, чего я хочу; из другого репозитория я могу сделать git fetch
и git merge
, который добавляет subOne
и историю в другой репозиторий. Это здорово.
Однако git-filter-branch
удалил subOne
. Проверка структуры каталогов в моей ветке:
$ ls
fileOne
$ pwd
/this/is/a/path/repository
pwd
должен читать: /this/is/a/path/repository
, но ls
должен показывать subOne
внутри хранилища. Вместо этого я получил файлы из subOne
, перемещенные вверх, и каталог был удален.
Как мне извлечь subOne
без потери каталога?