2014-11-16 3 views
0

Этого наблюдения на этот вопрос:фильтрация совершает после поддерева слияния

need to connect a new repository to a directory in an existing one

Перед выполнением мерзавца совершить, я оригинальную структуру из моего первоначального репозитория + в src/ каталог, который сопоставляется с библиотекой libs/somelibrary.
После git rm -rf все, кроме src/ Я делаю git commit, и все работает отлично.
Я тестировал вытягивание новых изменений из исходного хранилища, опять же, он работает.

Моя проблема: Весь журнал фиксации исходного репозитория применяется к этому; есть ли способ, которым я заканчиваю только журналы для этой конкретной somelibrary? как если бы я делал:

git log src/ 

ответ

1

Лучше всего было бы, вероятно, будет фильтровать коммиты, прежде чем делать суб-дерево сливаются с:

git filter-branch --prune-empty --subdirectory-filter libs/somelibrary -- 

в исходном хранилище (или клон этого просто чтобы убедиться, вы не потеряете ничего в этом процессе).

Обратите внимание, что последующее слияние дрелей будет еще проще после этого, так как после операции filter-branch содержимое libs/somelibrary будет в корне исходного хранилища.

+0

но, таким образом, я разрушу свой оригинальный репозиторий, или я что-то упустил? –

+0

Да, это разрушительная операция. Кроме того, поскольку он переписывает историю, перезаписанные фиксации будут иметь разные идентификаторы после этого. – Thibaut

+0

, тогда это не решит мою проблему. спасибо в любом случае –