Перевод статьи «A simple Git guide and cheat sheet for open source contributors».


Если вы читаете эту статью, вам уже известны все преимущества участия в движении open source.
Люди, желающие поучаствовать в разработке программ с открытым исходным кодом, часто сталкиваются с одной проблемой: они не знают, как сделать первый шаг на пути от форка (fork) к пул-реквесту (pull request).
В этой статье мы рассмотрим нужную последовательность действий. Это должно не только облегчить для вас весь процесс, но и придать более профессиональный вид вашему вкладу. Это особенно важно, если вы хотите добавить вашу работу в open source в свое портфолио.
Для целей этой статьи мы будет предполагать, что вам, в принципе, уже известно, как принять участие в open source. Если нет, возможно, вы захотите вначале прочесть эту статью.
Также мы предполагаем, что на вашем компьютере уже настроен Git. Если нет, лучше сначала заняться именно этим. Инструкции можно найти здесь.
Шаг 1: сделайте форк (ответвление) проекта
Перейдите в репозиторий проекта, в котором вы хотите что-то доработать, и кликните кнопку fork в верхнем правом углу, как показано на картинке.


Теперь в вашем аккаунте на GitHub есть этот репозиторий.
Шаг 2: клонируйте проект на свою машину
Это самая простая часть Git. Перейдите в свой форк репозитория (который теперь находится в ваших репозиториях GitHub). Выполните шаги 1 и 2, показанные на картинке, чтобы скопировать адрес вашего репозитория.


Он выглядит примерно так:
https:github.com/suretrust.com/freeCodeCamp.git
Затем клонируйте проект на свою машину, введя в окне вашего терминала
git clone <скопированный-адрес>
т. е., например,
git clone https://github.com/suretrust/freeCodeCamp.git
Шаг 3: создание upstream
Вам нужно отслеживать разницу между вашим форком репозитория в вашем аккаунте и оригинальным репозиторием. Это особенно полезно, если вы хотите принять участи е в работе над каким-то популярным репозиторием. Некоторые репозитории делают слияние пул-реквестов каждый час или даже чаще, так что вам нужно следить за тем, чтобы ваш форк не отставал от оригинального репозитория. В этом вам поможет upstream.
Имейте в виду, что upstream это оригинальный репозиторий (в примере – репозиторий freeCodeCamp), а не ваш форк. Выполните шаги 1 и 2 на рисунке ниже, чтобы скопировать адрес upstream.


Для создания ссылки на оригинальный репозиторий введите в терминале следующую команду:
git remote add upstream <скопированный-адрес-upstream>
Можно выполнить команду
git pull upstream master
чтобы убедиться, не произошло ли каких-то изменений (с того момента как вы сделали форк и до настоящей минуты).
Шаг 4: создание ветки (branch), над которой вы хотите поработать


Когда вы хотите что-либо изменить в проекте, будет хорошей идеей создать для этих изменений отдельную ветку. Это будет демонстрировать, что ветка предназначена только для той работы, которую вы хотите сделать. Такой работой может быть и исправление опечатки, и реализация новой фичи. В любом случае, будет хорошим тоном создать новую ветку.
Также имеет значение нейминг. Будет любезно с вашей стороны использовать имя, которое легко сможет понять человек, ничего не знающий об этом репозитории. Например, если вы хотите добавить возможность логиниться в приложении, можно создать ветку под названием add-login-feature или login-feature.
Для создания ветки введите в терминале следующую команду:
git checkout -b <имя-вашей-ветки>
Будет создана ветка и осуществлен переход в нее. Для наглядности – пример с названием login-feature:
git checkout -b login-feature
После этого можно начинать вносить свои изменения в ветку (исправлять опечатку, писать код фичи и т. д.).
Шаг 5: Git add и commit изменений
Это тоже достаточно просто. Вам нужно подготовить ваши изменения и сделать коммит (запись изменений), введя следующие команды в терминале:
git add . git commit -m 'Сообщение коммита'
Теперь ваши изменения подготовлены и записаны в ваш репозиторий. Что дальше?
Шаг 6: pull (получение данных) из upstream в вашу ветку
Этот шаг сольет (merge) любые изменения, произошедшие в upstream (оригинальном репозитории), с вашей веткой, чтобы избежать конфликтов.
git pull upstream <имя-ветки>
Шаг 7: push (помещение данных) в ветку, в которой вы работаете
Все почти готово. «Пушим» изменения в свою рабочую ветку:
git push origin <имя-ветки>
Шаг 8: открываем пул-реквест
Это финальный шаг, который делает контрибутор open source. На этом этапе вы будто говорите: «Я внес некоторые изменения, не будете ли вы так любезны добавить их в проект?»
Вы открываете пул-реквест, и если собственнику репозитория или людям, занимающимся его поддержкой, ваши изменения понравятся, они сольют их со своим проектом (merge). Также они могут внести какие-то изменения, а уж затем выполнить слияние, или запросить эти изменения.
Для открытия пул-реквеста перейдите в ваш форк репозитория, как показано ниже. Вы увидите последнюю ветку, в которую вы делали push («login-feature»). Кликните на «compare and pull request».


Четко поясните, что именно вы изменили, и открывайте пул-реквест, как показано ниже:


Вот и все. Вы готовы стать контрибутором проекта!
Шпаргалка с командами Git для контрибуторов open source


[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]