Проект B внутри подпапки проекта A - внесение локальных изменений в удаленный проект B - PullRequest
1 голос
/ 25 февраля 2012

Допустим, я владелец двух удаленных проектов: MainProject и AppsProject.

В локальном репозитории я хочу иметь AppsProject в подкаталоге MainProject (apps/).

Я пытался использовать стратегию subtree merge (ссылка: Pro Git Book )
В каталоге MainProject. Я сделал это:

$ git remote add apps-remote git@bitbucket.com:me/apps.git
$ git checkout -b apps-branch apps-remote/master
$ git checkout master
$ git read-tree --prefix=apps/ -u apps-branch
$ git checkout apps-branch
$ git pull

На самом деле я хочу сейчас иметь возможность фиксировать локальные apps/ изменения в AppsProject удаленном репозитории и все, что не находится в apps/ в MainProject удаленном репозитории.

Как это сделать?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Для создания подмодуля:

$ cd MainProject
$ git submodule add git@bitbucket.com:me/apps.git apps
$ git commit -a -m "added a submodule"
$ git push

Теперь, чтобы клонировать новое:

$ git clone --recursive git@bitbucket.com:me/MainProject.git

Или, если он уже где-то клонирован, но до добавления подмодуля:

$ git submodule update --init 
#Or without the --init to update the submodule

Имейте в виду, что при внесении изменений в подмодуль вы сначала хотите зафиксировать изменения в подмодуле, а затем зафиксировать изменения в основном репо, чтобы он его забрал. Подмодуль всегда заморожен при последнем коммите в главном репо.

1 голос
/ 25 февраля 2012

Я бы сделал внутренний проект подмодулем. Это позволит вам рассматривать внешний проект отдельно от него.

...