2008-11-05 1 views
6

У меня есть репозиторий git с удаленным foo.git: как объединить фиксации с пульта на другой путь?

Foo это веб-приложение, это содержит некоторые файлы и каталоги непосредственно в корне:

Rakefile 
app 
... 
public 
script 

Мой главный репозиторий Git является большая система, которая включает в себя это веб-приложение. Я хочу вытащить коммиты из foo, но мне нужны файлы, которые находятся внутри директории web. Поэтому они должны стать web/app, web/public и т. Д.

Я не хочу использовать foo как подмодуль. Я хочу объединить foo в основной репозиторий, а затем избавиться от него.

ответ

2

В до современных ресурсов для поддерево слияния являются:

Cite из How to use the subtree merge strategy:

В этом примере, скажем, у вас есть хранилище на /path/to/B (но это может быть URL, а также, если вы хотите). Вы хотите объединить главную ветку этого репозитория с подкаталогом dir-B в вашей текущей ветке.

Вот последовательность команд вам необходимо:

$ git remote add -f Bproject /path/to/B 
$ git merge -s ours --no-commit Bproject/master 
$ git read-tree --prefix=dir-B/ -u Bproject/master 
$ git commit -m "Merge B project as our subdirectory" 

$ git pull -s subtree Bproject master 

Смотрите также комментарии в статье "Subtree merging and you".