git-filter-branch: оставить структуру каталогов без изменений

У меня есть структура каталогов в моем репозитории:

|-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 без потери каталога?

5
задан codefx 24 May 2019 в 18:26
поделиться