LINUX.ORG.RU

История изменений

Исправление swwwfactory, (текущая версия) :

только я делал для своих нужд так: все, что относится к subtree положить в отдельную папку (как работать в subtree, когда файлы смешаны не пробовал. Но гиту главное указать папку в которой лежит под-дерево. Не стал возиться сделал очевидно - subtree лежит в отдельной папке типа src/my-subtree1)

Начни с этого мануала:

https://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html

проверь git subtree (это раньше не входило в гит)

Если его нет в ядре гита, потом поставь и настрой плагин к гиту: https://github.com/apenwarr/git-subtree.git (поищи новое если что, настраивал себе давно - за это время может уже что-то менялось и обещали этот плагин встроить гит (вроде уже встроили))

Далее, если в ядре нет - продолжение: Поставить плагин подразумевается его подключить прямо к гиту (скопировать, если его там нет в /usr/libexec/git-core/git-subtree или куда еще, где видит гит плагины)

Наиболее сложный момент это push обратно в subtree, pull не вызывал особых проблем.

Общий секрет в том, что:

-тренируешься сначала на кошках (советую 3-4 прогнать цикл, пока не освоишься)

-рекомендую использовать локальный (файловый) репозитарий для твоей subtree оригинальной репы. MY-ORIGIN-ST

-push в MY-ORIGIN-ST делать в отдельную ветку, а уж потом там мержишь её с мастером MY-ORIGIN-ST. Иначе будет ругань (устраняемая), но отдельная ветка более безопасна. (Master вообще лучше не трогать без необходимости особой.) Pull в твой subtree не вызывает особых проблем. (Только тоже лучше pull в отдельную ветку, а потом смержишь - так спокойнее)

-Когда тренируешься на локальной репе, да и вообще. Не забудь хотя-бы один коммит сделать уже.

-Когда будешь делать subtree push подстрахуйся резервной копией: есть риск запушить всю репу в репу под-дерева.

Если в git-core уже включили это плагин, то можно поэкспериментировать pull/push/merge/add прямо с ним - но этого кроме push лично сам не пробовал. Все делал как в мануале. Возможно, с встроенным git subtree все проще, но полезно понимать как это делается сначала без всех команд кроме push (этим плагином делал только эту команду)

subtree очень классная штука и стоит освоения. Решает многие проблеммы интеграции и развертывания проектов.

Исходная версия swwwfactory, :

только я делал для своих нужд так: все, что относится к subtree положить в отдельную папку (к работать в subtree, когда файлы смешаны не пробовал. Но гиту главное указать папку в которой лежит под-дерево. Не стал возиться сделал очевидно - subtree лежит в отдельной папке типа src/my-subtree1)

Начни с этого мануала:

https://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html

проверь git subtree (это раньше не входило в гит)

Если его нет в ядре гита, потом поставь и настрой плагин к гиту: https://github.com/apenwarr/git-subtree.git (поищи новое если что, настраивал себе давно - за это время может уже что-то менялось и обещали этот плагин встроить гит (вроде уже встроили))

Далее, если в ядре нет - продолжение: Поставить плагин подразумевается его подключить прямо к гиту (скопировать, если его там нет в /usr/libexec/git-core/git-subtree или куда еще, где видит гит плагины)

Наиболее сложный момент это push обратно в subtree, pull не вызывал особых проблем.

Общий секрет в том, что:

-тренируешься сначала на кошках (советую 3-4 прогнать цикл, пока не освоишься)

-рекомендую использовать локальный (файловый) репозитарий для твоей subtree оригинальной репы. MY-ORIGIN-ST

-push в MY-ORIGIN-ST делать в отдельную ветку, а уж потом там мержишь её с мастером MY-ORIGIN-ST. Иначе будет ругань (устраняемая), но отдельная ветка более безопасна. (Master вообще лучше не трогать без необходимости особой.) Pull в твой subtree не вызывает особых проблем. (Только тоже лучше pull в отдельную ветку, а потом смержишь - так спокойнее)

-Когда тренируешься на локальной репе, да и вообще. Не забудь хотя-бы один коммит сделать уже.

-Когда будешь делать subtree push подстрахуйся резервной копией: есть риск запушить всю репу в репу под-дерева.

Если в git-core уже включили это плагин, то можно поэкспериментировать pull/push/merge/add прямо с ним - но этого кроме push лично сам не пробовал. Все делал как в мануале. Возможно, с встроенным git subtree все проще, но полезно понимать как это делается сначала без всех команд кроме push (этим плагином делал только эту команду)

subtree очень классная штука и стоит освоения. Решает многие проблеммы интеграции и развертывания проектов.