Using Git and GitHub for Team Collaboration
This article covers using Git and GitHub to collaborate with others on a project, especially if you have to set it up yourself. Git and GitHub can be daunting at first, and it is very easy to get into trouble and waste a lot of time on source control, when you could be working on your project. This guide is meant to help you navigate the process for a one-time collaboration. If you are working on an open source project, or for a company that already has Git and GitHub set up, your environment and procedures may differ and may be tailored for longer-term collaboration, but the…
Git для новичков (часть 2)
В прошлой статье, я рассказал, что такое Git, как его установить и выложить свой код на GitHub. Сегодня мы поговорим про работу в команде над одним проектом. И как это устроено в Git.
В данной статье, вся работа с Git будет через командную строку.
Совместная работа
Представим, что вы с друзьями придумали проект, с «блэкджеком» и . Вы разделили обязанности. Кто-то будет делать авторизацию и регистрацию, а кто-то функционал вывода новостей. Для этого вам пригодится ветвление.
Ветка — это набор commit (кружок), которые идут друг за другом. У ветки есть название, основную ветку чаще всего называют master (на картинках будет называться main ) . Если говорить простыми словами, то ветка master — это наш проект.
Другие ветки — это отдельное место для реализации нового функционала или исправление багов (ошибок) нашего проекта. То есть, с отдельной веткой вы делаете что угодно, а затем сливаете эти изменения в основную ветку master .
? Не рекомендую создавать commit напрямую в master . Лучше для этого заводить новую ветку и все изменения писать там.
Для того, чтобы создать новую ветку вводим:
Эти команды делают тоже самое, только второй вариант позволяет сразу переключиться в новую ветку. Вносить изменения в новую ветку можно сразу после ее создания.
При создании новой ветки, старайтесь называть ее кратким и ёмким именем. Чтобы сразу было понятно, что именно изменялось по проекту. Если вы используете, какую-нибудь систему для ведения задач, то можете в начале названия ветки указывать ID задачи, чтобы можно было легко найти, на основе какой задачи была создана ветка. Например вот так:
В каждом новом commit следует оставлять коммент и в нем описывать суть изменений.
Переключаться между ветками можно такой командой:
После того, как вы завершили работу над своей задачей, ветку можно слить в master . Для этого нужно переключиться в ветку master и выполнить следующую команду:
❗️ Перед тем как сливать новый merge , стоит обновить локальную ветку master , во избежания дальнейших проблем.
Команда merge берет все изменения из ветки (например bugFix ) и добавляет их в ветку master .
Для того чтобы посмотреть текущее состояние ветки, например, какие файлы добавлены или не добавлены для создания commit, можно выполнить команду:
Другие пользователи не увидят вашу ветку, пока она не будет отправлена на удаленный репозиторий. Поэтому, после того как вы слили все изменения в master , нужно отправить их в GitHub. Для этого обязательно нужно находиться в ветке master :
Теперь все ваши изменения, в ветке master улетели в GitHub. Таким же образом, можно отправить любую другую ветку:
?Совет. Каждый коммит, лучше заливать сразу в удаленный репозиторий. Никто не застрахован, поломки собственного ПК. Поэтому чтобы не потерять все наработки, не забывайте сливать ваши изменения на GitHub.
Как же теперь другой человек получит все ваши изменения?
Для этого вам понадобиться GitHub или любой другой сервис для хранения кода. В прошлой статье я рассказывал как отправить код в GitHub. Сейчас я покажу, как его скопировать обратно себе на компьютер.
Если у вашего друга раньше не было проекта, то ему придется его «клонировать» себе:
? Адрес репозитория на GitHub можно получить, нажав на зеленую кнопку Code
После выполнения команды, в папке где появиться проект и ваш друг сможет с ним работать. Все ветки и их история также подтянуться.
Теперь самое главное
Перед тем, как создавать новый функционал и новую ветку, стоит обновить master на вашем устройстве. Для этого нужно находиться в этой ветке и выполнить следующую команду:
Таким же образом можно актуализировать любую другую ветку, заменив название ветки master на вашу.
Для обновления всех веток сразу, можно использовать такую, команду, но не рекомендую:
Теперь можно создавать новую ветку и кодить.
Какие проблемы могут возникнуть?
Git старается автоматически сливать изменения, однако это не всегда возможно. Иногда возникают конфликты. Например, когда в двух ветках были изменения в одной и той же строчке кода. Если такое произошло, то необходимо разрешить конфликт вручную. Для этого откройте файл там, где этого произошло. Например, вы можете увидеть что-то подобное:
Первый раздел (HEAD) — это то, что находиться в текущей ветке, куда вы пытались слить код. Второй раздел (между ==== и >>>>master ) — версия кода в ветке, откуда вы пытались слить код (в данном случае master ). Для того, чтобы разрешить конфликт, стоит оставить стили и привести файл в такой вид:
После внесения нужных изменений добавьте ваш файл через git add <имя_файла> как измененный и создайте новый commit:
Вспомогательные команды
Просмотреть изменения относительно двух веток можно командой:
Удалить ненужную ветку:
Просмотр историю ветки:
Подсказки по популярным командам:
Практика и вспомогательные инструменты
Для улучшения ваших навыков, в очередной раз оставлю ссылку на полезный тренажер с заданиями.
Так же, для удобства использования в Visual Studio Code, советую поставить это расширение, которое визуализирует ваши ветки и commit, и помогает с ними работать.
В телеграмм канале Step by Step , я публикую еще больше материала для тех, кто хочет научиться программировать и провожу обучающие стримы, для всех желающих.
Getting started with GitHub Team
With GitHub Team groups of people can collaborate across many projects at the same time in an organization account.
This guide will walk you through setting up, configuring and managing your GitHub Team account as an organization owner.
Part 1: Configuring your account on GitHub.com
As the first steps in starting with GitHub Team, you will need to create a personal account or log into your existing account on GitHub, create an organization, and set up billing.
1. About organizations
Organizations are shared accounts where businesses and open-source projects can collaborate across many projects at once. Owners and administrators can manage member access to the organization’s data and projects with sophisticated security and administrative features. For more information on the features of organizations, see «About organizations.»
2. Creating an organization and signing up for GitHub Team
Before creating an organization, you will need to create a personal account or log in to your existing account on GitHub.com. For more information, see «Signing up for a new GitHub account.»
Once your personal account is set up, you can create an organization and pick a plan. This is where you can choose a GitHub Team subscription for your organization. For more information, see «Creating a new organization from scratch.»
3. Managing billing for an organization
You must manage billing settings, payment method, and paid features and products for each of your personal accounts and organizations separately. You can switch between settings for your different accounts using the context switcher in your settings. For more information, see «About billing on GitHub.»
Your organization’s billing settings page allows you to manage settings like your payment method, billing cycle and billing email, or view information such as your subscription, billing date and payment history. You can also view and upgrade your storage and GitHub Actions minutes. For more information on managing your billing settings, see «Managing your GitHub billing settings.»
Only organization members with the owner or billing manager role can access or change billing settings for your organization. A billing manager is someone who manages the billing settings for your organization and does not use a paid license in your organization’s subscription. For more information on adding a billing manager to your organization, see «Adding a billing manager to your organization.»
Part 2: Adding members and setting up teams
After creating your organization, you can invite members and set permissions and roles. You can also create different levels of teams and set customized levels of permissions for your organization’s repositories, project boards, and apps.
1. Managing members of your organization
You can invite anyone to be a member of your organization, as long as they have a personal account on GitHub. You can also remove members and reinstate former members. For more information, see «Managing membership in your organization.»
2. Organization permissions and roles
Each person in your organization has a role that defines their level of access to the organization. The member role is the default, and you can assign owner and billing manager roles as well as «team maintainer» permissions. For more information, see «Roles in an organization.»
3. About and creating teams
Teams are groups of organization members that you can create to reflect your company or group’s structure with cascading access permissions and mentions. Organization members can send notifications to a team or request reviews, and teams can be visible or secret. For more information, see «About teams.»
You can create independent teams or have multiple levels of nested teams to reflect your group or company’s hierarchy. For more information, see «Creating a team.»
4. Managing team settings
You can designate a «team maintainer» to manage team settings and discussions, among other privileges. For more information, see «Assigning the team maintainer role to a team member.»
You can manage code review assignments for your team, change team visibility, manage scheduled reminders for your team, and more in your team’s settings. For more information, see «Organizing members into teams.»
5. Giving people and teams access to repositories, project boards and apps
You can give organization members, teams, and outside collaborators different levels of access to repositories owned by your organization with repository roles. For more information, see «Repository roles for an organization.»
You can also customize access to your organization’s project boards and allow individual organization members to manage your organization’s GitHub Apps. For more information, see «Managing access to your organization’s projects (classic)» and «Managing programmatic access to your organization.»
Part 3: Managing security for your organization
You can help to make your organization more secure by recommending or requiring two-factor authentication for your organization members, configuring security features, and reviewing your organization’s audit log and integrations.
1. Requiring two-factor authentication
You can view whether your organization members have two-factor authentication enabled and choose to require two-factor authentication in your organization. For more information, see «Requiring two-factor authentication in your organization.»
2. Configuring security features for your organization
To keep your organization secure, you can use a variety of GitHub security features, including security policies, dependency graphs, secret scanning and Dependabot security and version updates. For more information, see «Securing your organization» and «Managing security and analysis settings for your organization.»
3. Reviewing your organization’s audit log and integrations
The audit log for your organization allows you, as an organization owner, to review the actions performed by members of the organization within the current month and previous six months. For more information, see «Reviewing the audit log for your organization.»
You can also review and configure the permission levels for your organization’s installed integrations. For more information, see «Reviewing GitHub Apps installed in your organization.»
Part 4: Setting organization level policies
1. Managing organization policies
You can manage permissions and policies for a number of different actions and features in your organization.
For example, to protect your organization’s data, you can restrict repository creation in your organization. You can also choose to allow or prevent the forking of private repositories owned by your organization. For more information, see «Restricting repository creation in your organization» and «Managing the forking policy for your organization.»
For the full list of settings you can configure for your organization, see «Managing organization settings.»
2. Managing repository changes
You can configure permissions for creating, transferring and deleting repositories in your organization, including which types members can create. For more information, see «Restricting repository creation in your organization» and «Setting permissions for deleting or transferring repositories.»
You can also restrict or grant the ability to change repository visibility. For more information, see «Restricting repository visibility changes in your organization.»
3. Using organization-level community health files and moderation tools
You can create default community health files, such as a CONTRIBUTING.md file, a CODE_OF_CONDUCT.md file, or even issue and pull request templates, for your organization. These default files will be used for any repository owned by your organization that does not contain its own file of that type. For more information, see «Creating a default community health file.»
GitHub offers multiple tools for moderating and managing your community. For more information, see «About community management and moderation.»
Part 5: Customizing and automating your work on GitHub
You can use tools from the GitHub Marketplace, the GitHub API, and existing GitHub features to customize and automate your work.
1. Using GitHub Marketplace
GitHub Marketplace contains integrations that add functionality and improve your workflow. You can discover, browse, and install free and paid tools, including GitHub Apps, OAuth Apps, and GitHub Actions, in GitHub Marketplace. For more information, see «About GitHub Marketplace.»
2. Using the GitHub API
There are two versions of the GitHub API: the REST API and the GraphQL API. You can use the GitHub APIs to automate common tasks, back up your data, or create integrations that extend GitHub. For more information, see «About GitHub’s APIs.»
3. Building GitHub Actions
With GitHub Actions, you can automate and customize GitHub.com’s development workflow on GitHub. You can create your own actions, and use and customize actions shared by the GitHub community. For more information, see «Learn GitHub Actions.»
4. Publishing and managing GitHub Packages
GitHub Packages is a software package hosting service that allows you to host your software packages privately or publicly and use packages as dependencies in your projects. For more information, see «Introduction to GitHub Packages.»
Part 6: Participating in GitHub’s community
There are many ways to participate in the GitHub community. You can contribute to open source projects, interact with people in the GitHub Community Support, or learn with GitHub Skills.
1. Contributing to open source projects
Contributing to open source projects on GitHub can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine. For more information, see «How to Contribute to Open Source» in the Open Source Guides.
You can find personalized recommendations for projects and good first issues based on your past contributions, stars, and other activities in Explore. For more information, see «Finding ways to contribute to open source on GitHub.»
2. Interacting with the GitHub Community Support
You can connect with developers around the world to ask and answer questions, learn, and interact directly with GitHub staff. To get the conversation started, see «GitHub Community Support.»
3. Reading about GitHub Team on GitHub Docs
You can read documentation that reflects the features available with GitHub Team. For more information, see «About versions of GitHub Docs.»
4. Learning with GitHub Skills
You can learn new skills by completing fun, realistic projects in your very own GitHub repository with GitHub Skills. Each course is a hands-on lesson created by the GitHub community and taught by a friendly bot.
5. Supporting the open source community
GitHub Sponsors allows you to make a monthly recurring payment to a developer or organization who designs, creates, or maintains open source projects you depend on. For more information, see «About GitHub Sponsors.»
6. Contacting GitHub Support
GitHub Support can help you troubleshoot issues you run into while using GitHub. For more information, see «About GitHub Support.»
Help us make these docs great!
All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.
Совместная работа команды с GitHub
GitHub стал краеугольным камнем для всего программного обеспечения с открытым исходным кодом. Разработчики любят это, сотрудничают над этим и постоянно строят удивительные проекты через это. Помимо размещения нашего кода, основной привлекательностью GitHub является его использование в качестве инструмента для совместной работы. В этом уроке мы рассмотрим некоторые из наиболее полезных функций GitHub, особенно для работы в командах, что сделает его еще более эффективным, продуктивным и, самое главное, увлекательным!
Github и совместная работа программного обеспечения
Одна вещь, которую я считаю очень полезной, это интеграция Github Wiki в основной проект с исходным кодом.
В этом руководстве предполагается, что вы уже знакомы с Git , системой распределенного управления версиями с открытым исходным кодом, созданной Линусом Торвальдсом в 2005 году. Если вам нужна ревизия или поиск по Git, посетите наш предыдущий курс скринкаста или даже некоторые сообщения . Кроме того, у вас уже должна быть учетная запись Github и некоторые основные функции, такие как создание репозитория и внесение изменений в Github. Если нет, перейдите к другим учебникам по этому вопросу.
В мире программных проектов неизбежно, что мы будем работать в команде для реализации проекта. В этом уроке по Github и совместной работе мы будем изучать некоторые из наиболее распространенных инструментов, которые обычно нужны нам при работе с командами разработчиков. Обсуждаемые инструменты:
- Добавление членов команды – организация и соавторы
- Pull Requests – отправка и слияние
- Отслеживание ошибок – Github Issues
- Аналитика – Графики и Сеть
- Управление проектами – Trello & Pivotal Tracker
- Непрерывная интеграция – Travis CI
- Code Review – комментирование строк и URL-запросы
- Документирование – Wiki & Hubot
Предпочитаете скринкаст?
Если вы предпочитаете скринкаст для визуальной демонстрации, прыгните чуть ниже, чтобы просмотреть его и сослаться на это руководство как на примечания:
Инструмент 1: Добавление членов команды
Как правило, существует два способа настройки Github для совместной работы в команде:
- Организации – Владелец организации может создавать множество команд с разными уровнями разрешений для разных репозиториев.
- Соавторы. Владелец репозитория может добавлять соавторов с правами чтения + записи для одного репозитория.
организации
Если вы курируете несколько команд и хотели бы установить разные уровни разрешений для каждой команды с разными участниками и добавить каждого участника в разные репозитории, то организация будет лучшим вариантом. Любая учетная запись пользователя Github уже может создавать бесплатные организации для открытых репозиториев исходного кода. Чтобы создать организацию, просто перейдите на страницу настроек вашей организации :
Чтобы получить доступ к странице групп для вашей Организации, вы можете просто зайти на http://github.com/organizations/[organization-name]/teams чтобы просмотреть их или даже посетить https://github.com/organizations/[organization-name]/teams/new для создания новых команд с членами 3 разных уровней разрешений, таких как:
- Толькоизвлечение:извлечение и объединение с другим хранилищем или локальной копией. Доступ только для чтения.
- Push and Pull: (1) вместе с обновлением удаленного репо. Доступ для чтения и записи.
- Push, Pull & Administrative: (1), (2) наряду с правами на платежную информацию, создание команд, а также аннулирование учетных записей Организации. Чтение + запись + доступ администратора
соавторы
Коллабораторы используются для предоставления доступа на чтение и запись к одному репозиторию, принадлежащему личной учетной записи. Чтобы добавить коллабораторов (другие личные учетные записи Github), просто перейдите по https://github.com/[username]/[repo-name]/settings/collaboration :
Как только это будет сделано, каждый Collaborator увидит изменение статуса доступа на странице хранилища. После того, как у нас есть доступ на запись в репозиторий, мы можем выполнить git clone , поработать над изменениями, выполнить git pull для извлечения и объединения любых изменений в удаленном репозитории и, в конечном итоге, git push , чтобы обновить удаленный репозиторий своими собственными изменениями:
Инструмент 2: Запросы на извлечение
Запросы на извлечение – это отличный способ внести свой вклад в хранилище, раздвоив его. В конце дня, если мы хотим, мы можем отправить запрос на извлечение владельцу хранилища, чтобы объединить изменения нашего кода. Сам по себе запрос на получение ответа может привести к обсуждению качества кода, возможностей или даже общей стратегии.
Давайте теперь пройдемся по основным шагам для запроса на получение .
Инициирование запроса на извлечение
- Модель Fork & Pull – используется в общедоступном репозитории, для которого у нас нет прав доступа
- Модель общего репозитория – используется в частном репозитории, для которого у нас есть push-доступ. В этом случае вилка не требуется.
Здесь мы видим рабочий процесс между двумя пользователями ( repo-owner forked-repo-owner ) для модели Fork and Pull:
-
Укажите репозиторий Github, в который вы хотите внести свой вклад, и нажмите кнопку «Вилка», чтобы создать клон репозитория в своей учетной записи Github:
Слияние запроса на извлечение
Если вы являетесь первоначальным владельцем репозитория, есть два способа объединить входящий пул-запрос:
-
Слияние непосредственно на Github: Если мы сливаемся непосредственно в Github, убедитесь, что нет конфликтов, и он готов к слиянию с основной веткой. Владелец исходного хранилища может просто нажать зеленую кнопку «Запрос на объединение», чтобы сделать это:
В группах разработки программного обеспечения используются разные модели ветвления. Вот две популярные модели рабочих процессов git: (1) рабочий процесс Github, который имеет простую модель ветвления и использует запросы извлечения, и (2) Gitflow, который имеет более обширное ветвление. Модель, которая в итоге будет выбрана, определенно будет меняться в зависимости от команды, проекта и ситуации.
Инструмент 3: Отслеживание ошибок
Запросы на извлечение – это отличный способ внести свой вклад в хранилище, раздвоив его.
В Github центром отслеживания ошибок являются проблемы. Несмотря на то, что они предназначены в первую очередь для отслеживания ошибок, также полезно использовать Проблемы следующими способами:
- Ошибки: вещи, которые явно сломаны и нуждаются в исправлении
- Особенности: Потрясающие новые идеи для реализации
- Список дел: контрольный список предметов для завершения
Давайте рассмотрим некоторые особенности проблем:
- Метки: это цветные категории для каждой проблемы. Они полезны для фильтрации проблем соответственно.
- Вехи. Это устаревшие категории, которые могут быть связаны с каждой проблемой и полезны для определения проблем, которые необходимо решить для следующего выпуска. Кроме того, поскольку вехи связаны с проблемами, он автоматически обновляет индикатор выполнения при закрытии каждой связанной проблемы.
- Поиск: автоматический поиск как проблем, так и этапов.
Инструмент 4: Аналитика
Ясно, что мы можем тесно связать наш список задач и обновления нашего кода.
Есть два инструмента, которые дают представление о хранилище – Графики и Сеть. Github Graphs дает представление о соавторах и фиксирует их в каждом репозитории кода, а Github Network предоставляет визуализацию для каждого участника и его коммитов во всех разветвленных репозиториях. Эта аналитика и графики становятся очень мощными, особенно при работе в команде.
диаграммы
Графики предоставляют подробную аналитику, такую как:
- Участники: кто был участниками? А сколько строк кода они добавили или удалили?
- Активность коммитов: в какие недели происходили коммиты в прошлом году?
- Частота кода: Сколько строк кода было зафиксировано в течение всего жизненного цикла проекта?
- Punchcard: в какое время дня обычно происходят коммиты?
Github Network – это мощный инструмент, который позволяет вам видеть коммиты каждого участника и их связь друг с другом. Когда мы смотрим на визуализатор целиком, мы видим каждый коммит в каждой ветви каждого репозитория, принадлежащего сети. Проницательный!
Инструмент 5: Управление проектами
Хотя Github Issues имеют возможности управления проектами с помощью Issues and Milestones, некоторые группы могут предпочесть другой инструмент из-за других функций или существующего рабочего процесса. В этом разделе мы увидим, как мы можем связать Github с двумя другими популярными инструментами управления проектами – Trello и Pivotal Tracker . С сервисными хуками Github мы можем автоматизировать задачу обновления с коммитами, проблемами и многими другими действиями. Эта автоматизация помогает не только экономить время, но и повышает точность обновлений для любой команды разработчиков программного обеспечения.
Гитхуб и Трелло
Trello предоставляет простой визуальный способ управления задачами. Используя методологии Agile Software Development , карты Trello могут эмулировать простую виртуальную плату Kanban . Например, мы автоматически создадим карту Trello всякий раз, когда будет сделан запрос на извлечение с использованием сервисных хуков Github. Давайте пройдемся по шагам!
-
Откройте счет в Trello, если у вас его еще нет, и создайте новую доску Trello.
Github и Pivotal Tracker
Pivotal Tracker – это еще один легкий инструмент для гибкого управления проектами, где основанное на истории планирование позволяет команде легко сотрудничать, мгновенно реагируя на различные изменения и прогресс проекта. Основываясь на текущем прогрессе команды, он также может создавать диаграммы для анализа скорости команды, перебора итерации, выгрузки релиза и т. Д. В этом коротком примере мы автоматически доставим историю, связав ее с коммитом Github!
-
Создайте новый проект в Pivotal Tracker с новой историей, которую необходимо доставить.
С этими примерами Trello и Pivotal Tracker становится ясно, что мы можем тесно связать наш список задач и обновления для наших коммитов кода. Это значительно экономит время при работе в команде и повышает точность при привязке задач к точным коммитам. Хорошей новостью является то, что, если вы уже используете другие инструменты управления проектами, такие как Asana , Basecamp и другие, вы также можете создавать сервис-хуки аналогичным образом. Если для вашего текущего инструмента управления проектами не существует сервисных хуков, вы даже можете их создать !
Инструмент 6: Непрерывная интеграция
Непрерывная интеграция (CI) является важной частью всех проектов по разработке программного обеспечения, которые работают с командами. CI гарантирует, что, когда разработчик проверяет свой код, автоматическая сборка (включая тесты) обнаруживает ошибки интеграции как можно быстрее. Это определенно уменьшает ошибки интеграции и делает быструю итерацию намного более эффективной. В этом примере мы увидим, как Travis CI можно использовать с Github для CI для обнаружения ошибок, а также рекомендовать объединение при прохождении всех тестов.
Настройка Travis CI
Мы будем использовать простой проект “hello-world” для node.js с grunt.js в качестве инструмента сборки для настройки проекта Travis CI. Вот файлы в проекте:
-
Файл hello.js является проектом узла. Здесь мы намеренно пропустим точку с запятой, чтобы она не передавала инструмент построения grunt для линтинга:
Трэвис CI с запросами на подачу
Ранее, без какого-либо CI в процессе запроса на получение, шаги выполнялись примерно так: (1) отправлялся тест на получение запроса (2) слиянием (3), чтобы проверить, прошел он или нет. С Travis CI, подключенным к запросам на получение, мы сможем инвертировать шаги 2 и 3, еще больше увеличивая скорость принятия решений о том, стоит ли объединяться с Travis, давая нам статус с каждым запросом на выборку. Давайте посмотрим, как это сделать.
-
Отправьте запрос на извлечение с проходящей сборкой, и Трэвис сделает свое волшебство, чтобы вы знали, что слияние полезно даже до слияния.
Travis CI с Github чрезвычайно полезен для команд благодаря автоматическим сборкам и немедленному уведомлению. Это, безусловно, делает цикл исправления ошибок намного короче. Если вы используете Jenkins , еще один популярный инструмент CI, да, вы также можете настроить сервисные хуки Github также.
Инструмент 7: Проверка кода
С каждым коммитом Github предоставляет чистый интерфейс для общих комментариев или даже конкретных комментариев в строке кода. Возможность поднимать комментарии или вопросы по каждой отдельной строке кода очень полезна при построчной проверке кода. Чтобы просмотреть встроенные комментарии, включите-выключите флажок в верхней части каждого коммита.
Давайте рассмотрим некоторые шаблоны URL, которые могут помочь нам в рассмотрении кода, быстро предоставив нам различия между коммитами:
-
Сравните ветки / теги / SHA1 : используйте шаблон URL https://github.com/[username]/[repo-name]/compare/[starting-SHA1]. [ending-SHA1] . Вы можете сделать то же самое с веткой или тегами.
Инструмент 8: Документирование
В этом разделе мы рассмотрим два метода документации:
- Официальная документация : Github Wiki для создания документации для исходного кода
- Неофициальная документация : Github Hubot для документирования дискуссий между членами команды и автоматизации поиска информации, взаимодействуя с веселым чат-ботом!
- Упоминания, ярлыки и эмодзи
Github Wiki
Github Wiki может быть создан с каждым репозиторием, и это может быть очень удобно для размещения как исходного кода, так и документации в одном репозитории. Чтобы создать Wiki, просто перейдите на вкладку Wiki в главном заголовке, и вы настроены на создание страниц с информацией. Сама Wiki имеет свою собственную версию, и данные могут быть клонированы на наш локальный компьютер для обновления или даже автономного доступа.
Одна вещь, которую я считаю очень полезной, – это интеграция Github Wiki в основной проект с исходным кодом, чтобы мне не приходилось поддерживать два отдельных проекта git. Для этого я добавляю репозиторий Wiki git как подмодуль из основной ветки. Если вы используете Travis CI или любой другой CI, убедитесь, что инструмент сборки игнорирует подмодуль вики . Для файла Travis CI .travis.yml добавьте следующее:
Затем добавьте подмодуль git wiki в основной репозиторий кода:
Теперь вики будет аккуратно отображаться как подмодуль в основном проекте с исходным кодом.
Github Hubot
Короче говоря, Hubot может добавить массу удовольствия в документировании и уведомлении групповых дискуссий о важных коммитах.
Hubot – это просто чат-бот, который может извлекать информацию или предоставлять уведомления при подключении к коммитам, проблемам или действиям Github. В команде, которая стремится значительно сократить количество встреч или даже полностью исключить их, Hubot с интерфейсом чата среди членов команды помогает документировать каждое отдельное обсуждение. Это, безусловно, способствует гибкому графику работы, поскольку никто не должен присутствовать в одно и то же время для проведения обсуждений. Предупреждение: Hubot ужасно затягивает!
Теперь начнем с настройки Hubot на Heroku и в качестве бота с интерфейсом чата Campfire ! Для Heroku и Campfire есть бесплатные версии для начала.
- Мы будем использовать Github’s Campfire версию Hubot . Если вы хотите, вы можете проверить адаптеры для других чатов, таких как Skype, IRC, Gtalk и т. Д.
- Откройте новую учетную запись Campfire только для Hubot, и эта учетная запись создаст новую чат-комнату, в которую все остальные будут приглашены позже.
- Разверните Hubot в Heroku с помощью инструкций, приведенных в Hubot Wiki. Не беспокойтесь, если в URL-адресе приложения heroku выдается Cannot GET / поскольку по умолчанию нечего получить .
- Пригласите себя из учетной записи Hubot Campfire. Теперь войдите в свою учетную запись Campfire и выполните Hubot help . Это даст вам все доступные команды для hubot.
Ознакомьтесь с другими скриптами Hubot, относящимися к Github , или, если вы хотите написать их, есть также классное руководство ! Короче говоря, Hubot может добавить массу удовольствия в документировании и уведомлении групповых обсуждений важных коммитов, проблем и действий, происходящих с нашими репозиториями Github. Попробуйте!
В заключение, о работе с командой на Github, вот несколько советов по повышению производительности:
- Упоминания – В любой текстовой области мы можем упомянуть другого пользователя github с @user и пользователь получит уведомление о комментарии
- Сочетания клавиш – Нажмите [shift] + ? чтобы получить доступ к сочетаниям клавиш Github на любой странице.
- Emoji – используя шпаргалку Emoji , Github textareas также поддерживает вставку значков. Иди вперед и повеселись с товарищами по команде!
Непрограммная совместная работа на Github
Большинство из нас подумают об использовании Github только для программных проектов. В конце концов, Github был запущен для социального “кодирования”. Но есть несколько классных репозиториев Github, которые используются для некодирующих проектов, и они одинаково хороши для совместной работы и обсуждения. Поскольку эти проекты также имеют открытый исходный код и каждый может внести свой вклад, они быстро исправляют ошибки, легко сообщают об ошибках и эффективны для сотрудничества с единомышленниками. Просто для удовольствия, вот некоторые из них:
- Домашние исправления:отслеживание проблем в качестве инструмента мониторинга
- Книги:Маленькая Книга MongoDB , Основы Основы
- Тексты песен:JSConfEU Тексты песен
- Найти парня:boyfriend_require
- Наставничество:вики
- Геномные данные:эпидемия пепла
- Блоги:CSS Wizardry
И интересно, что думает об этом команда Github ?
«Мы копаем забавное использование GitHub, как это»
Больше ресурсов
- Социальное кодирование в GitHub , исследовательская работа Университета Карнеги-Мелон
- Как Github использует Github для создания Github от Zac Holman
- Git и Github Секреты Зак Холман
- Новые функции в Github из блога Github
- Github Help: получение запросов , создание репо
- Возможности Github для совместной работы
- Nettuts + учебники: Git и Github
- Повелитель файлов: как Github приручил бесплатное программное обеспечение (и многое другое) от Wired
Больше удовольствия в сотрудничестве!
Так что это были сводки некоторых инструментов для совместной работы в Github. Большинство из них служат в качестве быстрых аналитических инструментов или даже автоматизации, которая помогает сэкономить время при работе с двумя или более товарищами по команде. У вас есть больше советов по Github для команд? Давайте поделимся ниже!