Предыдущий ролик Следующий ролик  

Видео урок: Совместная работа

Git: обучение основам

В этом ролике мы поговорим, как вы можете добавить сотрудников в свой проект и как вы можете сами присоединиться к работе над проектом с открытым исходным кодом. Сейчас вы можете подумать - погодите минутку, мы же уже имели дело с сотрудничеством. У нас есть наш репозиторий explore_california, и у нас есть lynda_version, верно? То есть, над проектом работают два человека. На самом деле, это не совсем так, потому что для обоих этих репозиториев используется один аккаунт на GitHub, в данном случае это мой аккаунт и мои персональные данные. То есть, у меня есть два репозитория, которые как бы принадлежат двум разным людям, но на самом деле они мои.

Что будет, если мы захотим, чтобы другие GitHub пользователи имели доступ к нашему проекту? Тогда нам нужно перейти на домашнюю страницу проекта, нажимаем Admin, нам будет показана страница, где одной из опций является Collaborators, а затем мы начинаем набирать имя пользователя GitHub, с которым мы хотим работать. Когда имя пользователя внесено, начнется поиск. Конечно же, себя в проект я добавлять не буду, я и так уже часть его, но я просто наберу свое имя и посмотрю. что мне будет показано. Вот оно, поиск идет по всем Кевинам, пока не будет найдено мое пользовательское имя.

Вам нужно знать имя пользователя или, по крайней мере, иметь возможность его найти, а когда оно будет найдено, вы нажимаете Add, чтобы добавить этого человека к проекту. Когда вы его добавили, GitHub отправит ему имейл, что он был добавлен к репозиторию, а также даст ему URL, так что этот человек может клонировать репозиторий и начать работать. У него появится возможность и читать изменения, и вносить их. Очень важно иметь возможность добавлять людей к проекту, чтобы они могли работать с вами. если же вы хотите поработать над проектом с открытым исходным кодом, все работает немного по-другому, а причина заключается в том, что не любой человек в мире может вносить изменения в действующий проект. Было бы не совсем правильно, если бы каждый мог вносить свои коммиты в проект, стоит сделать так, чтобы только определенные люди могли записывать туда свои изменения.

Однако, прочитать коммиты может каждый. То есть, вносить изменения не каждый, а вот читать каждый. Прежде чем вы вносите изменения, вы должны сделать развилку. А до этого я предлагаю вам решить, какие изменения вы хотите сделать, какой вклад в проект вы можете сделать. Загляните в проект, убедитесь, что кто-то другой не работает над этим изменением, убедитесь, что это бранч, который связан с данным изменением, просмотрите также список задач, возможно, кто-то уже обозначил эту проблему или предложил новый функционал, и, возможно, по этому поводу уже идет обсуждение.

Нет смысла дублировать чью-то работу. Хорошая практика заключается в том, чтобы отправить сюда задачу касаемо того, что вы хотите сделать, и чтобы другие люди это видели то есть, вы беретесь за решение этой проблемы. Теперь можно сделать развилку (Fork) проекта. Тогда у вас будет своя версия этого проекта в вашем GitHub репозитории. Это больше не часть основного проекта, и сюда вы можете вносить изменения. Далее вы клонируете репозиторий и работаете с ним локально, как и обычно, коммитите эти изменения в свою версию проекта, а когда все сделано, вы возвращаетесь на страницу основного проекта в GitHub, и для этой задачи отправляете Pull Request.

На самом деле, Pull Request - это как поднять на уроке руку и сказать, что вы готовы ответить. С запросом вы отправляете сообщение, где вы определяете увиденную нами проблему или новый функционал, который вы хотели бы добавить, говорите о том, что вы хотите сделать, и поясняете, почему это будет хорошо для проекта. Если очевидна эффективность этого шага и ваш код выглядит хорошо, тогда ваши изменения будут приняты и включены в основной проект. Ваш бранч будет скачан, и произойдет слияние. И с этого времени у каждого будет доступ к этой вашей работе. Вот как возможна совместная работа в Git. Процесс немного разный, когда вы пытаетесь дать кому-то еще доступ read/write, или когда вы собираетесь работать над проектом, куда вы не можете вносить изменения.