2012-04-28 4 views
1

Это кажется, является общей проблемой, но я просто не могу найти разумное решение:
ИМХО, тем хуже проблема с git submodules где совершено подмодуль, но не нажат изменения легко удаляется при использовании хранилища git submodule update. Цитирование:Предотвратить обновление мерзавец подмодуль из УДАЛЕНИЕ подмодуль совершенные изменения

Это не безопасно запустить GIT обновление подмодуля, если вы сделали и совершили изменений в подмодуле, не проверив ветку первой. Они будут автоматически перезаписаны:

(... затем следует пример).

Так, к Вопрос-
Пусть super быть хранилищем корневой папки и submod быть ребенком папка, содержащая подмодуль:

-super 
    -submod 

Когда я совершить в подмодуль, но не толкать, а затем запустить git submodule update i get my совершил Изменения в подмоде удален (о, ужас).
Как я могу добавить подтверждение are you sure вопрос, когда я это делаю? крючки, скрипты или любые другие применимые идеи более приветствуются.

ТИА

ответ

1

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

Простой способ, чтобы увидеть, если у вас есть какие-либо измененные подмодули это:

if git submodule status | grep -q '^+'; then 
    # at least one submodule has changes 
fi 

Также отмечу, что если случайное обновление сдувает ваши изменения, вы можете все еще быть в состоянии спасти их через reflog подмодуля в Checkout (так как подмодульные проверки фактически полностью заполняют репозитории Git).

Смежные вопросы