Ответ 1
Вам не нужно копировать свои изменения: вы можете напрямую нажать от MainProject/lib
до того же самого репозитория восходящего потока (тот, который находится в git remote origin
), чем предыдущий репо (git remote origin
), найденный в MainProject/../lib
.
MainProject/lib
- это вложенное репо в своем собственном праве: вы можете добавить commit и нажимать их непосредственно из него.
Но тогда вы должны вернуться к MainProject/
, добавить, зафиксировать и нажать, чтобы записать новую gitlink (специальную запись в индексе родительского репо, которая записывает SHA1 подмодуля lib)
добавить и зафиксировать и нажать изменения рядом с
lib/
вMainProject
на удаленный
Нет: когда вы производите anyhting в lib, это изменит gitlink (запись 'lib' в MainProject
index)
Отправляясь к MainProject
(это означает, что вы были в MainProject/lib
, и вы делаете cd ..
), вы можете сделать git add., который будет:
- добавьте все свои изменения рядом с lib/
- записать новый SHA1, связанный с подмодулем
lib/
(запись 'lib
' gitlink)
Но нажав MainProject
, в комплекте с обновленной записью "lib" gitlink, вы убедитесь, что кто-то, клонировавший ваш MainProject
, вернется lib
к этому точно обновленному SHA1.