У меня есть коллекция инструментов, которые я синхронизирую между своими компьютерами через git pull on remote repo с рабочим деревом.Git subodules peer2peer рабочий процесс
Всякий раз, когда некоторые из инструментов имеют источник git, я добавляю их по 'git submodule add'.
Иногда я делаю небольшие модификации, компилирую инструменты и добавляю желание совершить это в git repo - моя цель - быстро использовать их с возможностью перекомпиляции. Что такое правильный рабочий процесс? Если я начну с:
modulepath/submodulepath/bin$ git add submodulefile
modulepath/submodulepath/bin$ git commit -m "subfix"
modulepath/submodulepath/bin$ git pull origin master
modulepath/submodulepath/bin$ cd ../../
modulepath/$ git add submodulepath;git commit -m "subfix in sub"
затем будет ли распространяться префикс фиксации после того, Я читал здесь git submodule update, что мне нужно зафиксировать первый подмодуль. Но с тем фактом, что моя фиксация не будет перенесена в начало субмодуля, но я хочу синхронизировать изменение между хостами, использующими основной модуль, как действовать дальше? Возможно ли наложение изменений в подмодуль основным модулем? Или я могу запустить ветвь субмодуля без URL-адреса восходящего канала - он будет только выбран/объединен с родительским основным модулем.
Итак, почему git называется децентрализованным, если для совместного использования контента p2p мне нужно настроить внешний URL-адрес на каждом хосте, где некоторые из них находятся за NAT, а соединение возможно только одним способом? – nusch
@nusch Потому что git * * децентрализован. Он получает свое содержание от * децентрализованных * серверов. в отношении субмодуля родительское репо регистрирует только url и SHA1 его подмодуля. Если этот подмодуль изменяется локально, ему необходимо нажать это изменение на url, на который полагается родительское репо, чтобы вернуть этот новый SHA1. – VonC