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

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

  1. Fork и Pull Request:
  • Создайте свою собственную копию (fork) репозитория, в которой вы будете вносить изменения.
  • Склонируйте свою форкнутую версию репозитория на локальный компьютер.
  • Создайте новую ветку, в которой будете внести нужные изменения.
  • Зафиксируйте изменения, сделайте коммиты и отправьте их на свою форкнутую версию репозитория.
  • Создайте Pull Request (PR) в исходный репозиторий, чтобы предложить свои изменения внесению в проект.
  • Для случаев, когда вам нужно внести дополнительные изменения или исправления, вы можете обновить свою ветку в своей форке и повторить процесс создания PR.
  1. Работа напрямую с основным репозиторием:
  • Склонируйте основной репозиторий на свой локальный компьютер.
  • Создайте новую ветку для внесения изменений.
  • Внесите нужные изменения, зафиксируйте их и отправьте на удаленный репозиторий.
  • Если изменения в вашей ветке успешно приняты, вы можете воспользоваться командой git pull, чтобы обновить свою ветку с последними изменениями из основного репозитория.
  • При использовании этого подхода следует помнить, что ваша ветка будет включать в себя все изменения из основного репозитория, включая изменения других разработчиков, может потребоваться слияние изменений, если конфликты возникнут.
  1. Git Submodule:
  • Git Submodule - это подмодуль Git-репозитория, который может быть включен в другой Git-репозиторий.
  • Создайте пустой Git-репозиторий и добавьте в него внешний репозиторий как подмодуль с использованием команды git submodule add.
  • Вы сможете работать с внешним репозиторием, как с отдельным репозиторием, управляя версиями и внося изменения.
  • Важно помнить, что в случае использования подмодулей возникает необходимость следить за версиями подмодулей, чтобы не потерять обновления и избежать возможных конфликтов.

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