Git Submodules - обновление и фиксация изменений - PullRequest
2 голосов
/ 12 января 2012

Я читаю пост Фила в блоге о подмодулях GIT, который будет очень полезен для меня. http://philsturgeon.co.uk/blog/2011/09/managing-codeigniter-packages-with-git-submodules

Меня интересует один шаг в процессе обновления подмодуля: когда вы вносите изменения в подмодуль и переходите к проверке статуса, он говорит, что вы не в рабочем дереве («у вас нет головы»?) , Вы тогда должны "Git Checkout Master" - ??? - но не отменит ли это все сделанные вами изменения и не вернет ли ваш подмодуль в предыдущее состояние?


Итак, с подмодулями я понимаю, что вы делаете следующее:

1.) Подмодуль клонирования

2.) Подмодуль инициализации и обновления ** вы делаете это только один раз?

3.) Внести изменения

4.) Оформить заказ "мастер" в подмодуле ** это вас не испортит?

5.) Фиксация подмодуля

6.) Субмодуль push ** Можете ли вы зафиксировать основной проект без подмодуля push?

7.) Зафиксировать основной проект

Просто пытаюсь прояснить ситуацию в моей голове.


РЕДАКТИРОВАТЬ: я думаю, есть разница между клонированием подмодуля в проект и вытягиванием всего суперпроекта. Похоже, "git submodule init && update" необходим только при извлечении целых проектов.

1 Ответ

0 голосов
/ 12 января 2012

Мой стартовый рабочий процесс

  1. Клонирование основного проекта
  2. Подмодуль инициализации и обновления
  3. Войдите в интересный подмодуль и выполните git checkout -b feature_branch
  4. внести изменения
  5. Передайте их
  6. толкни их
  7. Перейти к основному проекту
  8. git add && git commit && git push

Осторожно! Вы можете перенести основной проект в какой-либо общедоступный репозиторий без шага 6, но вы действительно не должны . Потому что это стало непригодным для посторонних.

Мой основной рабочий процесс (предположим, что мы уже реализовали несколько функций)

  1. Перейдите в основной репозиторий и извлеките нужную ветку | tag | commit
  2. Обновление подмодулей (это проверка желаемых версий всех подмодулей
  3. Войдите в интересный субмодуль и выполните git checkout -b feature_branch
  4. внести изменения
  5. Передайте их
  6. толкни их
  7. Перейти к основному проекту
  8. git add && git commit && git push
...