У меня есть структура каталогов в моем репозитории:
|-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
без потери каталога?