Внесите изменения в подмодуль git и сохраните изменения
Я клонировал подмодуль git одной из моих библиотек в проект, над которым я работаю. Дело в том, что после клонирования мне нужно изменить некоторые строки в клонированном подмодуле , но я не хочу вносить эти изменения в исходный репозиторий.
Я хочу, чтобы эти изменения оставались в суперпроекте. Это возможно? Как я могу это достичь?
EDIT: Как сказал @GoZoner, в основном его:
- git clone foo;
- cd foo;
- git подмодуль init;
- git обновление подмодуля;
- cd path/to/submodule;
- git мастер проверки;
- Внести изменения в подмодуль
- git commit -am "Что-то";
- git push origin (суперпроект);
Затем, когда я клонирую суперпроект на другом компьютере (до шага 4), я хочу, чтобы эти изменения сохранялись в суперпроекте.
Ответы
Ответ 1
Я думаю, вам нужно смягчить ограничение 'no commit to subodule'. Существует два варианта:
- Зафиксируйте изменения подмодуля в ветке подмодуля. Это ваша ветка вашей команды, и именно там ваша команда изменила ваш подмодуль. Когда кто-то клонирует суперпроект и обновляет подмодуль, он получает содержимое ветки вашей команды.
- Клонирование репозитория подмодулей "рядом с" в вашем суперпроектном репозитории и инициализировать подмодуль, чтобы указать на ваш клон. Затем, когда вы совершаете изменения в подмодуле, они привязаны к вашему клону. Любой, кто клонирует суперпроект, получает субмодульный контент из вашего подмодуля.
В противном случае я не вижу способа достичь желаемого.
Ответ 2
Вы можете проверить отдельную ветку для своих изменений. Не толкайте эту ветвь. Изменения, которые вы хотите нажать, сделать это на одной из исходных ветвей. Объедините эту ветку в свою специальную ветку, которую вы не отталкиваете. Не делайте никаких других работ в своей специальной ветке, так как вам придется объединить другой путь. Вы можете это сделать, но это осложняется.