diff --git a/lessons/java-core/015/GitHub. Fork and Pull Request.md b/lessons/java-core/015/GitHub. Fork and Pull Request.md new file mode 100644 index 0000000..45ea2b7 --- /dev/null +++ b/lessons/java-core/015/GitHub. Fork and Pull Request.md @@ -0,0 +1,71 @@ +# GitHub. Fork и Pull Request + +В сегодняшней статье мы продолжим знакомство с _GitHub_. В коммерческой разработке вы, скорее всего, будете сталкиваться +с другими, приватными хранилищами кода, такими как _GitLab_ и _Bitbucket_. Часть данной статьи посвящена **pull +request (PR)**, аналог которых есть в любом хранилище и в профессиональной разработке вы будете встречаться с этим +механизмом практически ежедневно. Также статья расскажет о, преимущественно, GitHub’овском механизме, который позволяет +создавать свои удаленные копии репозиториев и крайне полезен в разработке **библиотек** и **фреймворков с открытым +исходным кодом (opensource)**, в нашем случае он поможет систематизировать процесс проверки практических заданий. + +Итак, для начала ознакомимся со статьей +[Внесение собственного вклада в проекты](https://git-scm.com/book/ru/v2/GitHub-Внесение-собственного-вклада-в-проекты) + +Нас интересуют следующие разделы: + +- Создание ответвлений (fork); +- Рабочий процесс с использованием GitHub (до пункта «Создание запроса на слияние» включительно). + +Статья выше достаточно подробно описывает процесс создания fork’ов и pull request’ов. Мы же остановимся на особенностях +их создания для наших практических задач*: + +> * Актуально, в первую очередь, для практики в рамках [репозитория](https://github.com/KFalcon2022/practical-tasks) +> Для задач в других репозиториях - целевые ветки могут отличаться, но основные пункты те же. В т.ч. необходимость +> делать fork всего репозитория, а не только одной ветки. + +1. Теперь к каждому уроку будет прилагаться ссылка на репозиторий, в котором будет выложен дальнейший разбор; +2. Разбор будет находиться в ветке `master`, для отправки PR’ов в репозитории будет существовать ветка `for-pr`; +3. При создании форка вам будет предложено копировать только ветку `master`. _Уберите_ галочку с этого пункт, чтобы + ветка `for-pr` тоже была в вашей копии репозитория; +4. В оригинальном репозитории ветка `for-pr` всегда будет оставаться без решения. Там могут быть либо пустые классы (для + старых уроков), или пакеты, содержащие только `package-info` (для новых объемных задач); +5. Склонировав свой форк на собственный компьютер, переключитесь в IDEA на ветку `for-pr` (ЛКМ git в нижнем меню, ПКМ по + нужной ветке, ЛКМ Checkout); +6. Выполнив домашнее задание, запушьте коммиты; +7. Открыв свой форк на гитхабе вы увидите предложение создать PR. Также вы можете перейти в раздел _«Pull requests»_ и + справа найти кнопку _«New pull request»_; +8. Нажав на кнопку, вы увидите предложение сравнить ветки и добавить описание; +9. Убедитесь, что делаете PR из ветки `for-pr` в ветку `for-pr` (в оригинальном репозитории), в описании укажите номера + уроков и номера задач, которые отправляете на проверку; +10. Создайте PR и оповестите админа в ЛС о необходимости его проверить, прикрепив ссылку на PR. +11. Вы великолепны! + +Также не переживайте, что ваш PR не вливается. Механизм _pull request_’ов мы будем использовать для проверки задач, а не +изменения оригинального репозитория. + +Обратите внимание, что клонировать репозиторий из GitHub удобнее всего через консоль, используя +команду `git clone <ссылка на репозиторий>`. Можно воспользоваться консолью в IDEA или открыть _cmd/terminal_. Если +команда git недоступна в консоли – обратитесь к статье +[Установка Git](https://git-scm.com/book/ru/v2/Введение-Установка-Git) + +В рассмотренном выше механизме нет ничего сложного, уверен, у каждого из вас впереди создание сотен _pull request_’ов в +рамках боевых проектов. Но все бывает в первый раз. Поэтому не стесняйтесь спрашивать в чате или в ЛС, если что-то +осталось непонятным или не удается разобраться самостоятельно. + +#### С теорией на сегодня все! + +![img.png](../../../commonmedia/defaultFooter.jpg) + +Переходим к практике: + +В рамках практического задания предлагаю создать PR на [репозиторий](https://github.com/KFalcon2022/practical-tasks) + +Содержать он может любое количество выполненных задач. Укажите в описании PR, требуется ли проверка этих задач, если +да – укажите уроки и номера задач, которые стоит проверить (для pr, где часть задач уже была проверена ранее). + +> Если что-то непонятно или не получается – welcome в комменты к посту или в лс:) +> +> Канал: https://t.me/ViamSupervadetVadens +> +> Мой тг: https://t.me/ironicMotherfucker +> +> **Дорогу осилит идущий!** \ No newline at end of file