Примітка. Це з 2009 року і, можливо, тоді було добре, але зараз є кращі варіанти.
Ми цим користуємось. Це називається git-pup
:
#!/bin/bash
# Exists to fully update the git repo that you are sitting in...
git pull && git submodule init && git submodule update && git submodule status
Просто помістіть його у відповідний каталог бін (/ usr / local / bin). Якщо в Windows, вам може знадобитися змінити синтаксис, щоб він працював :)
Оновлення:
У відповідь на коментар оригінального автора про втягнення у ВІДГОЛОВКИ всіх підмодулів - це хороше питання.
Я майже впевнений, що git
не має команди для цього всередині. Для цього вам слід визначити, що насправді є HEAD для підмодуля. Це може бути так просто, як сказати, master
це найсучасніша галузь тощо.
Слідом за цим створіть простий сценарій, який виконує такі дії:
- перевірити
git submodule status
наявність "модифікованих" сховищ. Перший символ вихідних рядків вказує на це. Якщо субрепортаж буде змінено, ви, можливо, НЕ захочете продовжувати.
- для кожного перерахованого репо, введіть його у каталог та запустіть
git checkout master && git pull
. Перевірте наявність помилок.
- Наприкінці я пропоную вам роздрукувати дисплей користувачеві, щоб вказати поточний стан підмодулів - можливо, запропонуйте їм додати всі та зробити фіксацію?
Я хотів би зазначити, що цей стиль насправді не те, для чого були розроблені підмодулі git. Як правило, ви хочете сказати, що "LibraryX" знаходиться у версії "2.32" і залишатиметься таким, доки я не скажу "оновити".
Тобто, в певному сенсі, що ви робите з описаним сценарієм, але просто більш автоматично. Необхідний догляд!
Оновлення 2:
Якщо ви перебуваєте на платформі Windows, ви можете поглянути на використання Python для реалізації сценарію, оскільки він дуже здатний в цих областях. Якщо ви перебуваєте на unix / linux, то я пропоную лише сценарій bash.
Потрібні роз'яснення? Просто опублікуйте коментар.