Мне нужно было сделать что-то подобное, но я хотел по сути перенести один подпроект из репо в другой. Вместо этого я использовал выборку, поскольку она может извлекать объекты из любого источника.
Итак, по сути, я создал новую ветку, удалил ненужные вещи в этой ветке, а затем использовал git fetch, чтобы перетащить ветку из одного репо в другое. Когда у меня были объекты, слияние сделало свое дело.
E.g.
В репозитории с оригинальными материалами:
git checkout -b temp master
git rm -r Unneeded_stuff
git commit -m 'pruning'
Затем вы можете получить эту ветку из одного репозитория в совершенно другой (не связанный):
cd /path/to/other/repository
git fetch /path/to/source/repo temp:temp
где temp: temp означает «получить временную температуру из источника и сохранить ее здесь как временную». Оттуда вы можете объединить результат в свой мастер.
git merge temp
Затем вы можете удалить временные ветки, поскольку в первом случае это не то, что вы когда-либо хотели бы объединить с исходным репо, а во втором случае вы его объединили.
Я уверен, что эти шаги можно было бы немного сжать, но этот набор кажется красивым и понятным.
person
Tony K.
schedule
28.06.2011