Re[6]: git субмодули
От: пффф  
Дата: 10.07.24 15:28
Оценка:
Здравствуйте, andrey.desman, Вы писали:

П>>Да я наверное не очень что-то понимаю. Решил я попробовать с ними пожить. Есть у меня либа, я её в проект присунул как сабмодуль. Либа активно развивается вместе с проектом, я особо не заморачиваюсь с ветками мержреквестами и пр, тупо в мастер добавляю изменения, и пушу в ремоут. Да, при обновлении текущая ветка не меняется, если я уже сделал чекаут, тут я соврал, но в новое место когда клонируешь, надо чекаут на ветку сделать, я пару раз накололся.


AD>Не понял...


Хм, а что именно я непонятно изложил? Попробую попонятнее, только я пока не пойму, что тебе не понятно


П>>Состояние не менять — в том плане, что у меня выбрана ветка мастер, и я хочу иметь там самые последние изменения. Ну то есть да, HEAD будет двигаться.


AD>Так не получится, двигать надо вручную. А что если захочешь собрать старую версию, а она тебе вычекнет несовместимый новый сабмодуль?


А, кажись я понял. Я после git pull репы делаю
git submodule update --init --recursive --remote --merge




AD>>>Ну ладно, не важно. Сабмодули всегда ставятся на конкретный коммит, как раз чтобы не менять состояния, поэтому они всегда вычекиваются в detached head.


П>>Вот тут не очень понятно, а на какой коммит они ставятся? В .gitmodules вроде нет по дефолту информации о коммите, значит, гит сам выбирает какой коммит мне подсунуть? Самый последний?

AD>Нет, который был последним закомичен в этой ветке.

В какой ветке?

AD>Представь, что сабмодуль — это софтлинк, который ссылается на конкретное имя mysuperlib-0.0.3. В разных ветках, в разных коммитах эта ссылка может быть разной. Она автомагически не будет меняться на другие имена.

AD>Чтобы обновить версию сабмодуля в ветке, ты идешь в сабмодуль, вычекиваешь нужную версию (можно и мастер, не важно, азпоминаться бущет именно коммит). Потом идешь обратно в главный реп, делаешь git add submodule-path, git commit. Всё, теперь в твоей ветке новая версия. Мержишь свою ветку в мастер главного репа, и оппа, теперь в мастере новая версия.

А, вот так чутка попонятнее стало, спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.