Какой workflow выбрать для модификации внешних git-репозиториев?

При модификации внешних Git-репозиториев можно использовать несколько различных подходов, в зависимости от ваших потребностей и контекста проекта. Ниже перечислены три самых распространенных workflow, которые вы можете рассмотреть.

1. Fork и Pull Request:
- Создайте свою собственную копию (fork) репозитория, в которой вы будете вносить изменения.
- Склонируйте свою форкнутую версию репозитория на локальный компьютер.
- Создайте новую ветку, в которой будете внести нужные изменения.
- Зафиксируйте изменения, сделайте коммиты и отправьте их на свою форкнутую версию репозитория.
- Создайте Pull Request (PR) в исходный репозиторий, чтобы предложить свои изменения внесению в проект.
- Для случаев, когда вам нужно внести дополнительные изменения или исправления, вы можете обновить свою ветку в своей форке и повторить процесс создания PR.

2. Работа напрямую с основным репозиторием:
- Склонируйте основной репозиторий на свой локальный компьютер.
- Создайте новую ветку для внесения изменений.
- Внесите нужные изменения, зафиксируйте их и отправьте на удаленный репозиторий.
- Если изменения в вашей ветке успешно приняты, вы можете воспользоваться командой git pull, чтобы обновить свою ветку с последними изменениями из основного репозитория.
- При использовании этого подхода следует помнить, что ваша ветка будет включать в себя все изменения из основного репозитория, включая изменения других разработчиков, может потребоваться слияние изменений, если конфликты возникнут.

3. Git Submodule:
- Git Submodule - это подмодуль Git-репозитория, который может быть включен в другой Git-репозиторий.
- Создайте пустой Git-репозиторий и добавьте в него внешний репозиторий как подмодуль с использованием команды git submodule add.
- Вы сможете работать с внешним репозиторием, как с отдельным репозиторием, управляя версиями и внося изменения.
- Важно помнить, что в случае использования подмодулей возникает необходимость следить за версиями подмодулей, чтобы не потерять обновления и избежать возможных конфликтов.

Выбор workflow зависит от различных факторов, включая ваш опыт и командные процессы, разрабатываемые с командой разработчиков. Рассмотрите все варианты, преимущества и недостатки каждого подхода, чтобы выбрать наиболее подходящий для вашей конкретной ситуации.