в Git подмодуля отслеживание последних



мы перемещаем наш (огромный) проект в git, и мы думаем об использовании подмодулей. Наш план состоит в том,чтобы иметь три разных головы в суперпроекте: релиз,стабильный, последний. Руководство проекта будет обрабатывать выпуск и стабильные ветви. Они будут перемещать подмодули по мере необходимости.



проблема заключается в" последней " голове. Хотелось бы суперпроекты "свежую" голову, чтобы отслеживать главной ветви всех подмодулей (автоматически). А также было бы здорово, если бы он показал история всех фиксаций в подмодуле.



Я посмотрел на gitslave, но это не совсем то, что мы хотим. Есть предложения?

616   1  

1 ответ:

Обновление Марта 2013

Git 1.8.2 добавлена возможность отслеживать ветки.

"git submodule " начал изучать новый режим интеграция с кончиком удаленной ветви (в отличие от интеграции с фиксацией, записанной в gitlink суперпроекта).

# add submodule to track master branch
git submodule add -b master [URL to Git repo];

# update your submodule
git submodule update --remote 

см. также учебник Vogella по подмодулям.

в разделе "как сделать существующий подмодуль отслеживает ветвь" (если бы у вас уже был подмодуль, вы бы сейчас хотели отслеживать ветку)

Примечание:

git submodule add -b . [URL to Git repo];
                    ^^^

посмотреть git submodule на странице:

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


посмотреть совершить b928922727d6691a3bdc28160f93f25712c565f6:

submodule add: если --branch дается, запишите его в .gitmodules

это позволяет легко записывать submodule.<name>.branch на .gitmodules при добавлении нового подмодуля. С этим патчем,

$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>

снижает до

$ git submodule add -b <branch> <repository> [<path>]

это означает, что будущие вызовы

$ git submodule update --remote ...

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

подпись: У. Тревор Кинг


оригинальный ответ (февраль 2012):

подмодуль-это единственная фиксация, на которую ссылается родительское РЕПО.
Поскольку это РЕПО Git само по себе, "история всех коммитов" доступна через git log в рамках подмодуля.

так что для родителя автоматически отслеживать последнюю фиксацию данной ветви подмодуля, это должно было бы:

  • cd в подмодуле
  • git fetch / pull, чтобы убедиться, что он имеет последние фиксации на правой ветви
  • компакт-диск обратно в родительский РЕПО
  • добавить и зафиксировать для записи новой фиксации подмодуля.

gitslave (что вы уже посмотрели), кажется, лучше всего подходит,в том числе для операция фиксации.

немного раздражает вносить изменения в подмодуль из-за требования проверить правильность ветви подмодуля, внести изменения, зафиксировать, а затем перейти в суперпроект и зафиксировать фиксацию (или, по крайней мере, записать новое местоположение подмодуля).

другие альтернативы подробнее здесь.

Comments

    Ничего не найдено.