Я хотел бы поделиться реальным примером , когда мы используем Ветви и когда мы используем Forks
У нас есть GitLab в нашем магазине, и иногда нам приходится работать над пакетами изПроект Laravel.Обычно мы создаем ветку и вносим изменения в ветку, которую мы тестировали, в нашей локальной среде виртуальных машин при работе с реальным проектом Laravel.
Скажем, наш проект расположен в
https://github.com/yardpenalty/mainproject.git
Использование ветки:
Допустим, ветвь называется It_doesnt_matter
Как только мы получим нашу ветку так, как мы хотим для производства, мы сделаем наш последний толчок кэта ветка и создают запрос на слияние , который затем отправляется в UAT для тестирования. Как только тест пройден через QC, изменения объединяются в производство.
объединение изIt_doesnt_matter
ветвь теперь передается в мастер-проект
в https://github.com/yardpenalty/mainproject.git
Допустим, пакетный проект расположен в
https://github.com/yardpenalty/mypackage.git
Имейте в виду, что основной проект использует этот пакет в производстве, поэтому мы не можем вносить изменения, просто помещая их в этот пакет (среди прочих причин).Допустим, веб-разработчик должен отредактировать этот пакет, чтобы внести изменения в производство.
Простая ветвь также не будет работать, потому что мы не можем видеть наши изменения без публикации пакета и т. Д.
Использование вилки: Теперь, когда нам нужно немного поработать с нашим пакетом, мы создаем клон производственного пакета с помощью вилки.Файлы composer.json могут быть обновлены, чтобы указывать на разветвление, которое теперь находится в Путь пользователя или группы
Таким образом, мы создадим разветвление в https://github.com/yardpenalty/mypackage.git
и назовите его https://github.com/yardpenalty/yards/mypackage.git
Теперь мы можем обновить наш файл composer.json , чтобы он указывал на этот пакет в наших «репозиториях»: [массив такой такой, и мы поехали!
{
"type": "github",
"url": "https://github.com/yardpenalty/yard/mypackage.git"
}
]