git: как правильно вернуть изменения в мастер при работе с подмодулями - PullRequest
5 голосов
/ 25 июня 2010

Я использую рабочий процесс git, как описано в этом посте .Короче говоря: каждый развивается внутри своей собственной ветви, прежде чем вернуться обратно к мастеру, вы перебазируете свою ветку снова, чтобы получить чистую историю.

Это работает.

Теперь у нас есть подмодульи поскольку это внутренний плагин (Rails), мы должны часто менять его.Поэтому в большинстве случаев у меня есть изменения как в общей ветке, так и в ветке подмодулей.

Как лучше всего работать с подмодулями в рабочем процессе, как указано выше.

Сначала я пытаюсьотправьте мои изменения в подмодуль (мастер git checkout, ветка git, ветка git checkase, мастер git rebase, мастер git checkout, ветка git merge).

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

После того, как перебазирование закончится, я просто восстановлю <folder_name>.orig, чтобы перезаписать файл <folder_name>, и все хорошо.

Но почему-то кажется, что должен быть лучший способ.

Вкратце: при работе через checkout-b / rebase / merge - рабочий процесс, как вы обрабатываете измененные подмодули одновременно?

1 Ответ

2 голосов
/ 25 июня 2010

Какой бы рабочий процесс вы не выполняли с подмодулями , есть одно правило, которое вы не должны забывать:
(Из учебника Git)

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

$ git checkout master
$ echo "adding a line again" >> a.txt
$ git commit -a -m "Updated the submodule from within the superproject."
$ git push
$ cd ..
$ git add a        # There is a gotcha here.  Read about it below.
$ git commit -m "Updated submodule a."

Итак, вы зафиксировали новое состояние вашего подмодуля в родительском проекте, прежде чем пытаться выполнить ребазирование / слияние из указанного родительского проекта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...