GitHub
GitHub — это сервис для совместной разработки и хостинга проектов. C помощью GitHub над кодом проекта может работать неограниченное количество программистов из любых точек мира. В GitHub есть система контроля (управления) версий Git: сервис позволяет просматривать и контролировать любые изменения кода любым разработчиком и возвращаться к состоянию до изменений.

«IT-специалист с нуля» наш лучший курс для старта в IT
В целом GitHub — это социальная сеть для разработчиков, в которой можно найти проекты с открытым кодом от других разработчиков, практиковаться в написании кода и хранить свое портфолио.
Проекты в GitHub
Проект в GitHub хранится в репозитории (repository) — коллекции всех изменений создаваемого кода. Если вы будете работать над проектом в одиночку — вам нужно создать новый репозиторий. Если в вашем проекте несколько разработчиков — каждый из них будет клонировать репозиторий первоначального создателя проекта.
Внутри репозитория изменения кода хранятся в виде веток и коммитов.

Коммит (commit) — основной объект разработки, в котором хранятся все изменения кода за итерацию. По сути, это список со всеми актуальными изменениями и ссылка на предыдущую версию коммита. У каждого коммита есть атрибуты: имя, дата создания, автор и комментарии к текущей версии (например, «Создал страницу courses.html» при разработке сайтов с видеокурсами).
Профессия / 8 месяцев
IT-специалист с нуля
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

Ветка (branch) — указатель на коммит с определенными изменениями. Например, два разработчика взяли коммит, и каждый из них сделал свои изменения в коде, создав по новому коммиту («Создал страницу coursеs.html c личным кабинетом» и «Создал страницу courses.html со свободным доступом на курсы»). Так в проекте появились две ветки с разным кодом: разработчик может выбрать, над каким коммитом ему работать дальше.
Основной веткой проекта, как правило, считается ветка main или master — разработчики создают новые ветки на ее основе. Также можно создать неограниченное количество веток, чтобы вносить новые изменения, не мешая основному проекту.
Слияние веток
Часто разработчики делают параллельные изменения кода. Например, один разработчик работает над внешним видом сайта, а другой занимается размещением контента на нем. По окончании работы ветки каждого из них можно объединить в одну, чтобы создать коммит со всеми внесенными разработчиками изменениями.
Для этого в Git используют функцию pull request (pr). Pull request — это заявка на слияние кода из разных веток. В процессе слияния Git создаст коммит и покажет все изменения в файле кода: добавленные до разветвления строки подсветятся зеленым цветом, удаленные — красным. Так каждый из разработчиков и менеджер проекта увидят, что произошло с кодом после совместной работы над коммитом. Перед окончательным слиянием (merge) все разработчики должны просмотреть изменения кода (code review) и принять их.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить
Процесс pull request
Теперь посмотрим на процесс со стороны владельца проекта, который получил новый pull request. Владельцу нужно его обработать и объединить ветку sme-review с master.

Пример ревью кода, где есть разрешение на слияние в главную ветку

Пример ревью кода, где нет разрешения на слияние

Ревью кода
Ревью кода (code review) — процесс обсуждения изменений кода после совместного создания коммита и перед окончательным слиянием. В ревью разработчики оставляют комментарии к строкам с измененным кодом, а в случае ошибок или упущенных моментов предлагают решения по улучшению кода.
После ревью разработчики должны закрыть комментарии и принять предлагаемые изменения (функция approve). Git объединит ветки с помощью функции merge и перенесет созданный коммит в основную ветку main. В истории коммитов останется отметка о проведенном слиянии веток.
Ревью кода, пример

Как учиться работе в GitHub
GitHub — самый популярный сервис для разработки проектов в команде и хранения портфолио собственных проектов. Научиться работе с Git и GitHub необходимо каждому разработчику. Вот несколько материалов, которые помогут новичкам в разработке освоить GitHub:
- шпаргалка по Git/GitHub — вводная статья для новичков с первыми шагами от опытного разработчика;
- Githowto — интерактивный учебник с уроками по основам Git;
- Pro Git — самая популярная книга по работе с Git и GitHub;
- бесплатный видеокурс по основам Git на YouTube;
- список из семи курсов по изучению Git и GitHub.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

Статьи по теме:
Что такое GitHub
Простыми словами Гитхаб — площадка, где можно разместить общий проект, совместно управлять всеми изменениями, а в случае неудачи — быстро вернуться к исправной версии. О возможностях GitHub рассказываем в нашем обзоре.
Возможности GitHub
Когда над кодом одновременно работает несколько человек, могут возникать путаницы. Гитхаб автоматически создает копию проекта перед новым сеансом и позволяет каждому члену команды автономно решать локальные задачи без риска испортить общую разработку. После того как правки добавлены, редактор может запросить у других авторов одобрение на внесение новых решений в базу кода. Таким образом, изменения проходят постепенно и по их историям всегда можно отследить что, кем и на каком этапе было внедрено. Чем еще удобен Гитхаб:
- Есть возможность добавить иллюстрацию к текстовому комментарию с описанием проблемы.
- Подсветка синтаксиса помогает быстрее работать с кодом. Сервис может угадать выбранный вами язык программирования, для этого нужно начать строку с трех обратных одинарных кавычек.
- Для создания ссылки на конкретный комментарий достаточно нажать на дату рядом с его названием. Кроме того, можно создать ссылку на конкретный участок кода. Это облегчает процесс совместной работы.
- Следить за состоянием текущих проблем в проекте помогает чекбокс, по мере их устранения можно ставить отметку напротив исправленного участка.
- Можно создать доску проекта, где будут собраны все заметки и ошибки, для эффективного планирования и распределения работы. Некоторые ошибки легче решить, получив комментарии от других авторов.
- Все операции в GitHub атомарны, то есть операция выполняется полностью или не выполняется совсем. Это позволяет избежать повисших операций, которые делают нестабильным все хранилище.
Репозиторий
Репозиторий — это каталог, в котором размещаются все файлы проекта: изображения, видео, аудио и другие данные. Он может быть расположен на общем сервере или в локальном хранилище на устройстве разработчика.
В случае с распределенной системой контроля версий Гитхаб создается общий репозиторий, и каждый член команды сохраняет полный каталог файлов себе. Входе редактирования версии синхронизируются. Это значит, что у всех пользователей есть копия общей базы кода и всех внесенных изменений. Если один из серверов станет недоступным, для продолжения работы достаточно скопировать репозиторий другого участника проекта.

Контроль версий
Обновления в коде происходят на всех этапах жизненного цикла продукта. При создании нового проекта их значительно больше, так как основной функционал только закладывается. Однако они остаются и после запуска разработки: обновляются версии, устраняются ошибки, добавляются новые возможности и т. д. Система контроля версий — Git — помогает отслеживать изменения, внесенные в базу кода. Она сохраняет данные о том, кто внес правки, и позволяет восстановить удаленный код или его версию до редакции. Все изменения внутри репозитория хранятся в виде коммитов и веток.

Чтобы решить задачу автономно, то есть так, чтобы изменения кода не были внесены в общую базу, создается копия репозитория — ветка. В каждой ветке фиксируется история всех изменений, внесенных в участки кода в рамках конкретной задачи. Ветки можно объединять между собой и с центральным хранилищем, предварительно отправив запрос на извлечение. Пользователь отправляет соавторам информационное сообщение о том, что в главный репозиторий были внесены изменения. Другие разработчики могут принять или отклонить корректировки. После открытия запроса можно обсудить проделанную работу с коллегами.
Каждая ветка состоит из нескольких самостоятельных действий или исправлений кода. Такое действие является точкой сохранения проекта и носит название commit. Коммитам присваиваются уникальные идентификаторы и комментарии, позволяющие объяснить другому программисту суть изменений и их назначение.
Безопасность
Использование Git гарантирует подлинность истории изменений исходного кода. Владелец репозитория всегда будет знать, кто и когда вносил правки. Это позволяет быстро обнаружить несанкционированный доступ. Уязвимости могут появиться в открытом коде, поэтому важно проверять свою разработку на их наличие. Приведем несколько инструментов, которые помогут обнаружить уязвимости в коде.

- GuardRails — приложение безопасности, которое можно скачать на маркетплейсе Гитхаба. Оно анализирует код в режиме реального времени, поэтому при выявлении уязвимостей пользователь может оперативно их исправить. Сервис оставляет комментарии в пул реквесты и отображает информацию в панели мониторинга. Приложение поддерживает языки Python, Ruby, JavaScript, Solidity, Go, Java и PHP.
- WhiteSource Bolt — сервис, позволяющий разработчикам создавать сканы репозиториев и находить уязвимости в открытом коде. Приложение сканирует код и создает ошибку при обнаружении угрозы безопасности. Поддерживает Java, Python, PHP, C #, C ++ и другие.
- LGTM — помогает найти потенциальные уязвимости в открытом коде и предотвратить их появление. Поддерживает C, C ++. COBOL, Python, Javascript и Java.
Заключение
GitHub предлагает множество инструментов для работы с кодом и позволяет сделать ее проще. Вы можете объединяться со специалистами из разных стран и совместно работать над проектом, помогая друг другу с исправлением ошибок и ускоряя процесс разработки параллельно решая одну задачу.
Описание GitHub Pages
You can use GitHub Pages to host a website about yourself, your organization, or your project directly from a repository on GitHub.com.
GitHub Pages is available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see «GitHub’s plans.»
About GitHub Pages
GitHub Pages is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository on GitHub, optionally runs the files through a build process, and publishes a website. You can see examples of GitHub Pages sites in the GitHub Pages examples collection.
You can host your site on GitHub’s github.io domain or your own custom domain. For more information, see «Configuring a custom domain for your GitHub Pages site.»
You can create GitHub Pages sites that are publicly available on the internet. Organizations that use GitHub Enterprise Cloud can also publish sites privately by managing access control for the site. For more information, see «Changing the visibility of your GitHub Pages site» in the GitHub Enterprise Cloud documentation.
Organization owners can disable the publication of GitHub Pages sites from the organization’s repositories. For more information, see «Managing the publication of GitHub Pages sites for your organization.»
Types of GitHub Pages sites
There are three types of GitHub Pages sites: project, user, and organization. Project sites are connected to a specific project hosted on GitHub, such as a JavaScript library or a recipe collection. User and organization sites are connected to a specific account on GitHub.com.
To publish a user site, you must create a repository owned by your personal account that’s named .github.io . To publish an organization site, you must create a repository owned by an organization that’s named .github.io . Unless you’re using a custom domain, user and organization sites are available at http(s)://.github.io or http(s)://.github.io .
The source files for a project site are stored in the same repository as their project. Unless you’re using a custom domain, project sites are available at http(s)://.github.io/ or http(s)://.github.io/ .
For more information about how custom domains affect the URL for your site, see «About custom domains and GitHub Pages.»
You can only create one user or organization site for each account on GitHub. Project sites, whether owned by an organization or a personal account, are unlimited.
Publishing sources for GitHub Pages sites
Warning: GitHub Pages sites are publicly available on the internet, even if the repository for the site is private. If you have sensitive data in your site’s repository, you may want to remove the data before publishing. For more information, see «About repositories.»
You can publish your site when changes are pushed to a specific branch, or you can write a GitHub Actions workflow to publish your site.
If you do not need any control over the build process for your site, we recommend that you publish your site when changes are pushed to a specific branch. You can specify which branch and folder to use as your publishing source. The source branch can be any branch in your repository, and the source folder can either be the root of the repository ( / ) on the source branch or a /docs folder on the source branch. Whenever changes are pushed to the source branch, the changes in the source folder will be published to your GitHub Pages site.
If you want to use a build process other than Jekyll or you do not want a dedicated branch to hold your compiled static files, we recommend that you write a GitHub Actions workflow to publish your site. GitHub provides starter workflows for common publishing scenarios to help you write your workflow.
Static site generators
GitHub Pages publishes any static files that you push to your repository. You can create your own static files or use a static site generator to build your site for you. You can also customize your own build process locally or on another server.
If you use a custom build process or a static site generator other than Jekyll, you can write a GitHub Actions to build and publish your site. GitHub provides starter workflows for several static site generators. For more information, see «Configuring a publishing source for your GitHub Pages site.»
If you publish your site from a source branch, GitHub Pages will use Jekyll to build your site by default. If you want to use a static site generator other than Jekyll, we recommend that you write a GitHub Actions to build and publish your site instead. Otherwise, disable the Jekyll build process by creating an empty file called .nojekyll in the root of your publishing source, then follow your static site generator’s instructions to build your site locally.
GitHub Pages does not support server-side languages such as PHP, Ruby, or Python.
Limits on use of GitHub Pages
GitHub Pages sites created after June 15, 2016, and using github.io domains are served over HTTPS. If you created your site before June 15, 2016, you can enable HTTPS support for traffic to your site. For more information, see «Securing your GitHub Pages site with HTTPS.»
Prohibited uses
GitHub Pages is not intended for or allowed to be used as a free web-hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service (SaaS). GitHub Pages sites shouldn’t be used for sensitive transactions like sending passwords or credit card numbers.
In addition, your use of GitHub Pages is subject to the GitHub Terms of Service, including the restrictions on get-rich-quick schemes, sexually obscene content, and violent or threatening content or activity.
Educational exercises
Using GitHub Pages to create a copy of an existing website as a learning exercise is not prohibited. However, in addition to complying with the the GitHub Terms of Service, you must write the code yourself, the site must not collect any user data, and you must include a prominent disclaimer on the site indicating that the project is not associated with the original and was only created for educational purposes.
Usage limits
GitHub Pages sites are subject to the following usage limits:
- GitHub Pages source repositories have a recommended limit of 1 GB. For more information, see «About large files on GitHub»
- Published GitHub Pages sites may be no larger than 1 GB.
- GitHub Pages deployments will timeout if they take longer than 10 minutes.
- GitHub Pages sites have a soft bandwidth limit of 100 GB per month.
- GitHub Pages sites have a soft limit of 10 builds per hour. This limit does not apply if you build and publish your site with a custom GitHub Actions workflow
- In order to provide consistent quality of service for all GitHub Pages sites, rate limits may apply. These rate limits are not intended to interfere with legitimate uses of GitHub Pages. If your request triggers rate limiting, you will receive an appropriate response with an HTTP status code of 429 , along with an informative HTML body.
If your site exceeds these usage quotas, we may not be able to serve your site, or you may receive a polite email from GitHub Support suggesting strategies for reducing your site’s impact on our servers, including putting a third-party content distribution network (CDN) in front of your site, making use of other GitHub features such as releases, or moving to a different hosting service that might better fit your needs.
MIME types on GitHub Pages
A MIME type is a header that a server sends to a browser, providing information about the nature and format of the files the browser requested. GitHub Pages supports more than 750 MIME types across thousands of file extensions. The list of supported MIME types is generated from the mime-db project.
While you can’t specify custom MIME types on a per-file or per-repository basis, you can add or modify MIME types for use on GitHub Pages. For more information, see the mime-db contributing guidelines.
Data collection
When a GitHub Pages site is visited, the visitor’s IP address is logged and stored for security purposes, regardless of whether the visitor has signed into GitHub or not. For more information about GitHub’s security practices, see GitHub Privacy Statement.
Further reading
- GitHub Pages on GitHub Skills
- «Repositories»
Что Такое GitHub И Для Чего Именно Он Нужен?
GitHub это система управления проектами и версиями кода, а также платформа социальных сетей, созданная для разработчиков. Но для чего используется GitHub? Ну, среди прочего, это позволяет вам работать совместно с другими людьми по всему миру, планировать свои проекты и отслеживать свою работу.
GitHub также является одним из крупнейших онлайн-хранилищ (англ) совместной работы по всему миру.

Что такое Git?
Прежде чем мы перейдём дальше, мы должны понять, что такое Git. Это как сердце GitHub. Git — это система контроля версий, разработанная Линусом Торвальдсом (человеком, создавшим Linux).
Что такое система контроля версий?
Когда разработчики создают новый проект, они всегда продолжают вносить обновления в код. Даже после запуска проектов им всё равно нужно обновлять версии, исправлять ошибки, добавлять новые функции и т. д.
Система контроля версий помогает отслеживать изменения, внесённые в базу кода. Более того, он записывает, кто внёс изменения и может восстановить стёртый или изменённый код.
Перезаписанных кодов не существует, поскольку Git сохраняет несколько копий в хранилище. Если вы заинтересованы в Git, вы можете узнать больше о Git здесь.
Что такое Hub?
Если Git — это сердце GitHub, то Hub — это его душа. Концентратор в GitHub — это то, что превращает командную строку, такую как Git, в крупнейшую социальную сеть для разработчиков.
Помимо участия в определённом проекте, GitHub позволяет пользователям общаться с единомышленниками. Вы можете следить за людьми и смотреть, что они делают или с кем они общаются.
Репозиторий
Репозиторий или хранилище — это каталог, в котором хранятся файлы вашего проекта. Он может быть расположен в хранилище GitHub или в локальном хранилище на вашем компьютере. Вы можете хранить файлы кодов, изображения, аудио или всё, что связано с проектом, в хранилище.
Ветка
Ветка это копия вашего репозитория. Вы можете использовать ветку, когда хотите сделать разработку изолированно.
Работа с веткой не повлияет на центральное хранилище или другие ветки. Если вы сделали эту работу, вы можете объединить свою ветку с другими ветками и центральным репозиторием, используя запрос на извлечение.
Запрос на извлечение
Запрос на извлечение означает, что вы сообщаете другим, что вы передали изменения, внесённые вами в ветке, в главный репозиторий. Соавторы хранилища могут принять или отклонить запрос на извлечение. После его открытия вы можете обсудить и проанализировать свою работу с соавторами.
Следуйте приведённым ниже инструкциям, чтобы создать запрос на извлечение в GitHub:
- Перейдите в хранилище и найдите ветку меню
- В меню выберите ветку, которая содержит ваш коммит
- Нажмите кнопку Новый запрос на извлечение рядом с меню ветки
- Вставьте заголовок и описание для вашего запроса.
- Нажмите кнопку Создать запрос на извлечение
Форкинг репозитория
Форкинг репозитория означает, что вы создаёте новый проект на основе существующего репозитория. Говоря простым языком, разветвление репозитория означает, что вы копируете существующий репозиторий, вносите некоторые необходимые изменения, сохраняете новую версию в качестве нового репозитория и называете это своим собственным проектом.
Это отличная функция, которая ускоряет разработку проекта. Поскольку это совершенно новый проект, центральное хранилище не будет затронуто. Если «главный» репозиторий обновлён, вы также можете применить это обновление к вашему текущему форку.
Следуйте приведённым ниже инструкциям, чтобы создать репозиторий в GitHub:
- Найдите репозиторий, который вы хотите разветвлять
- Нажмите кнопку Форк
GitHub не ограничен только для разработчиков
GitHub это отличная платформа, которая меняет работу разработчиков. Тем не менее каждый, кто хочет эффективно управлять своим проектом и работать совместно, также может узнать что такое GitHub и как им пользоваться.
Если ваша команда работает над проектом, который нуждается в постоянных обновлениях, и хочет отслеживать внесённые изменения, GitHub — именно то, что вам нужно. Есть и другие альтернативы, такие как GitLab, BitBucket, но лучше сначала разобраться, что такое GitHub и научиться ним пользоваться.
Готовы начать свой проект? Попробовать с хостингом от Hostinger
Знаете, что такое GitHub? Возможно, вы даже знаете, как пользоваться GitHub? Расскажите о вашем опыте в разделе комментариев.
Анна долгое время работала в сфере социальных сетей и меседжеров, но сейчас активно увлеклась созданием и сопровождением сайтов. Она любит узнавать что-то новое и постоянно находится в поиске новинок и обновлений, чтобы делиться ими с миром. Ещё Анна увлекается изучением иностранных языков. Сейчас её увлёк язык программирования!