Могу ли я вытащить только определенные файлы из другого репозитория git? - PullRequest
2 голосов
/ 20 января 2010

Например, предположим, что у меня есть Хранилище 1 и Хранилище 2. Хранилище 1 имеет файл /a/b/c/d. Могу ли я импортировать этот файл в репозиторий 2 как /e/f/g/h?

Причина в том, что я хочу получить изменения из экспериментальной ветки из другого репозитория git. Я пытался объединить все вместе, но было множество конфликтов (всех видов). Поэтому я сомневаюсь, что смогу объединить всю ветку, но я хотел бы попытаться внести как можно больше.

Есть ли способ сделать то, что я хочу, или мне просто придется прибегнуть к копированию файлов напрямую?

Ответы [ 2 ]

1 голос
/ 22 января 2010

Вы можете получить файлы из удаленного хранилища, используя git archive. Затем вы можете добавить и зафиксировать файлы в вашем хранилище. Такой подход не сохранит историю от его ветки. Подробнее см. git archive docs .

Если вы хотите попытаться сохранить части этой экспериментальной ветви, вы можете git fetch его хранилище, а затем git rebase его экспериментальную ветку в вашем хранилище, редактируя или пропуская коммиты с конфликтами в зависимости от ситуации. Если у вас есть очищенная ветвь в вашем хранилище, вы можете объединить ее. Смотрите git rebase docs

1 голос
/ 20 января 2010

Вам придется скопировать файл напрямую. Git работает с целыми репозиториями, а не с отдельными файлами внутри них.

Полагаю, вы могли бы установить Repository 2 в качестве удаленного хранилища, извлечь ( not pull) его ветви, а затем использовать git checkout, чтобы извлечь файл из этой ветви, но это решение может быть грязным .

...