github что это за программа
Git для новичков (часть 1)
Что такое Git и зачем он нужен?
С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.
Репозиторием называют хранилище вашего кода и историю его изменений. Git работает локально и все ваши репозитории хранятся в определенных папках на жестком диске.
Так же ваши репозитории можно хранить и в интернете. Обычно для этого используют три сервиса:
Как работает
В итоге получается очень простой граф, состоящий из одной ветки ( main ) и четырех commit. Все это может превратиться в более сложный граф, состоящий из нескольких веток, которые сливаются в одну.
Об этом мы поговорим в следующих статьях. Для начала разберем работу с одной веткой.
Установка
Основой интерфейс для работы с Git-ом является консоль/терминал. Это не совсем удобно, тем более для новичков, поэтому предлагаю поставить дополнительную программу с графическим интерфейсом (кнопками, графиками и т.д.). О них я расскажу чуть позже.
Но для начала, все же установим сам Git.
Windows. Проходим по этой ссылке, выбираем под вашу ОС (32 или 64 битную), скачиваем и устанавливаем.
Для Mac OS. Открываем терминал и пишем:
Linux. Открываем терминал и вводим следующую команду.
Настройка
Вы установили себе Git и можете им пользоваться. Давайте теперь его настроим, чтобы когда вы создавали commit, указывался автор, кто его создал.
Открываем терминал (Linux и MacOS) или консоль (Windows) и вводим следующие команды.
Создание репозитория
Теперь вы готовы к работе с Git локально на компьютере.
Создадим наш первый репозиторий. Для этого пройдите в папку вашего проекта.
Теперь Git отслеживает изменения файлов вашего проекта. Но, так как вы только создали репозиторий в нем нет вашего кода. Для этого необходимо создать commit.
Отлично. Вы создали свой первый репозиторий и заполнили его первым commit.
Процесс работы с Git
Не стоит после каждого изменения файла делать commit. Чаще всего их создают, когда:
Создан новый функционал
Добавлен новый блок на верстке
Исправлены ошибки по коду
Вы завершили рабочий день и хотите сохранить код
Это поможет держать вашу ветки в чистоте и порядке. Тем самым, вы будете видеть историю изменений по каждому нововведению в вашем проекте, а не по каждому файлу.
Визуальный интерфейс
Как я и говорил ранее, существуют дополнительные программы для облегчения использования Git. Некоторые текстовые редакторы или полноценные среды разработки уже включают в себя вспомогательный интерфейс для работы с ним.
Но существуют и отдельные программы по работе с Git. Могу посоветовать эти:
Я не буду рассказывать как они работают. Предлагаю разобраться с этим самостоятельно.
Создаем свой первый проект и выкладываем на GitHub
Давайте разберемся как это сделать, с помощью среды разработки Visual Studio Code (VS Code).
Перед началом предлагаю зарегистрироваться на GitHub.
Создайте папку, где будет храниться ваш проект. Если такая папка уже есть, то создавать новую не надо.
Установите себе дополнительно анализаторы кода для JavaScript и PHP
Откройте вашу папку, которую создали ранее
После этого у вас появится вот такой интерфейс
Здесь будут располагаться все файлы вашего проекта
Здесь можно работать с Git-ом
Кнопка для создания нового файла
Кнопка для создания новой папки
Давайте теперь перейдем во вкладу для работы с Git-ом.
Откроется вот такое окно:
Кнопка для публикации нашего проекта на GitHub
Вы создали и опубликовали репозиторий на GitHub.
Теперь сделаем изменения в коде и попробуем их снова опубликовать. Перейдите во вкладку с файлами, отредактируйте какой-нибудь файл, не забудьте нажать crtl+s (Windows) или cmd+s (MacOS), чтобы сохранить файл. Вернитесь обратно во вкладу управления Git.
Если посмотреть на значок вкладки Git, то можно увидеть цифру 1 в синем кружке. Она означает, сколько файлов у нас изменено и незакоммичено. Давайте его закоммитим и опубликуем:
Кнопка для просмотра изменений в файле. Необязательно нажимать, указал для справки
Добавляем наш файл для будущего commit
Отправляем наш commit в GitHub
Поздравляю, вы научились создавать commit и отправлять его в GitHub!
Это первая вводная статья по утилите Git. Здесь мы рассмотрели:
Как его устанавливать
Как его настраивать
Как инициализировать репозиторий и создать commit через консоль
Как на примере VS Code, опубликовать свой код на GitHub
Забегая вперед, советую вам погуглить, как работают следующие команды:
P.S. Для облегчения обучения, оставлю вам ссылку на бесплатный тренажер по Git.
Что Такое 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 и научиться ним пользоваться.
Знаете, что такое GitHub? Возможно, вы даже знаете, как пользоваться GitHub? Расскажите о вашем опыте в разделе комментариев.
Анна долгое время работала в сфере социальных сетей и меседжеров, но сейчас активно увлеклась созданием и сопровождением сайтов. Она любит узнавать что-то новое и постоянно находится в поиске новинок и обновлений, чтобы делиться ими с миром. Ещё Анна увлекается изучением иностранных языков. Сейчас её увлёк язык программирования!
Github: что это такое и как его использовать
Github – это очень известная платформа для хранения, распространения и управления исходным кодом открытых проектов. Github использует множество разработчиков по всему миру, среди которых есть и крупные компании, такие как Microsoft, RedHat и другие.
Github предоставляет возможности не только по просмотру кода и его распространения, но также историю версий, инструменты совместной разработки, средства для предоставления документации, выпуска релизов и обратной связи. И самое интересное, что вы можете размещать на Gihub как открытые, так и приватные проекты. В этой статье мы рассмотрим как пользоваться Github для размещения своего проекта. Так сказать, github для начинающих.
Допустим, у вас есть свой проект и вы хотите разместить его код на Github в открытом доступе чтобы другие пользователи могли его посмотреть и участвовать в разработке. Первое что вам нужно сделать – создать аккаунт.
GitHub Issues
GitHub Issues – одна из наиболее популярных в мире систем отслеживания багов.
Она предоставляет владельцам репозиториев возможность организовывать, отмечать тегами и привязывать проблемы к контрольным точкам.
Если вы найдете проблему в проекте, управляемом кем-то другим, она будет открытой до тех пор, пока вы не закроете ее (например, если выясните, в чем заключается проблема) или пока владелец репозитория не закроет ее.
Иногда вы будете получать окончательный ответ, а иногда проблема будет оставаться открытой и будет помечена некоторой информацией, которая ее классифицирует. Затем разработчик может вернуться к тегу, чтобы исправить проблему или улучшить кодовую базу с помощью ваших отзывов.
Большинству разработчиков не платят за поддержку их кода, выложенного на GitHub, поэтому нельзя ожидать быстрых ответов. Но некоторые репы с открытым исходным кодом публикуются компаниями, которые предоставляют услуги для этого кода. Они предлагают коммерческие предложения для версий с большим количеством функций или используют архитектуру на основе плагинов. Поэтому они платят разработчикам, работающим над проектом с открытым исходным кодом.
Создание аккаунта на Github
Чтобы создать новый аккаунт на сайте откройте главную страницу GitHub и тут же сразу вы можете ввести данные для новой учетной записи. Вам нужно указать имя пользователя, Email и пароль:
Когда завершите ввод, нажмите кнопку “Sign Up Free.
Никакая настройка github не нужна, достаточно лишь несколько кликов мышкой.
На следующем шаге вам нужно выбрать тип репозитория. Для open-souce проектов использование сайта бесплатно. При необходимости иметь приватные репозитории, есть возможность перейти на платный тарифный план:
Аккаунт готов, и вы будете перенаправлены на страницу, где сможете создать свой первый проект. Но перед тем как вы сможете это сделать, нужно подтвердить свой Email адрес. Для этого откройте ваш почтовый ящик и перейдите по ссылке в письме от Github. Сейчас у нас нет ни одного репозитория, и мы можем либо создать новый репозиторий, либо ответвиться (fork) от уже существующего чужого репозитория и вести собственную ветку разработки. Затем, при желании, свои изменения можно предложить автору исходного репозитория (Pull request).
Создание репозитория в Github
На открывшейся странице, это главная страница для авторизованных пользователей, нажмите кнопку “Start a project”:
Дальше введите имя и описание будущего репозитория:
Вы можете сразу же инициализировать репозиторий, создав файл Readme, для этого нужно отметить галочку “Initialize this repository with a README” внизу страницы. Также можно выбрать лицензию:
Когда все будет готово, выберите “Create project”, будет создан новый проект с файлом README, в котором находится описание и файлом лицензии.
Добавление веток
Ветки Github позволяют работать с несколькими версиями проекта одновременно. По умолчанию при создании репозитория создается ветка master, это основная рабочая ветка. Можно создать дополнительные ветки, например, для того, чтобы тестировать программное обеспечение перед тем, как оно будет опубликовано в ветке master. Таким образом, можно одновременно разрабатывать продукт и предоставлять пользователям стабильную версию. Также можно создавать отдельные ветки для версии программы для разных систем.
Текущая ветка обозначена в верхнем левом углу после слова “Branch”. Чтобы создать новую ветку просто разверните этот список и начните набирать ее имя:
Сайт сам предложит вам создать новую ветку, выберите “Create branch”. Сразу же после создания вы будете работать с только что созданной веткой.
Изменение файлов и коммиты
Любые изменения файлов на Github делаются с помощью коммитов. Коммит выполняется путем внесения самих исправлений и описания этих исправлений. Это необходимо для того, чтобы вы знали что и когда вы меняли, а также позволяет легко отслеживать работу команды. Слово коммит можно перевести как “фиксировать”. То есть мы можем внести изменения в несколько файлов, а затем их зафиксировать. Давайте для примера изменим файл README. Для этого найдите в в правой стороне панели кнопку с кисточкой и нажмите на нее:
Откроется текстовый редактор, где вы можете ввести нужные вам исправления:
После того как вы сделаете все что вам нужно, необходимо заполнить поле “Commit” внизу страницы. Кратко опишите что было изменено, а затем нажмите кнопку “Commit changes”:
Эти изменения будут внесены в текущую ветку проекта, поскольку мы сейчас работаем с testing, то и изменения будут отправлены именно туда.
Новый Github Desktop
Github выпустил обновленную версию Github Desktop — программы под Windows 7+ и OS X, которая дублирует функциональность сайта github.com, но при этом работает локально на компьютере разработчика.
Github Desktop упрощает многие действия в рабочем процессе и заменяет Github for Mac и Github for Windows на новый унифицированный интерфейс.
Ветви Github Desktop
Ветви всегда доступны в левом верхнем углу в режиме просмотра репозитория. Можно быстро выбрать нужную ветку или создать новую.
Совместная работа
Просмотр изменений (diff) до отправки коммита на сайт, в программе сразу видно, в каких файлах и строчках сделаны изменения. Коммит отправляется из окна программы, без использования командной строки.
Прямо из программы отправляются и пул-реквесты.
Слияние и развертывание
Просмотр коммитов в локальной и удаленной ветке, где сразу ясно видно, какие конкретно изменение нужно слить с проектом. Прямо из программы можно слить свой код в основную ветку для развертывания.
Просмотр истории
Интерактивный график с визуализацией сделанных изменений и коммитов. Прямо на графике можно выбрать коммит и просмотреть историю изменений в локальной ветке.
Некоторые пользователи жалуются, что программа подтормаживает на сложных проектах.
Github командная строка
Консоль — ваш друг. По моему опыту, освоение работы с Github через командную строку — лучшая трата времени, когда работаешь с open source-технологиями. Да, существует много хороших графических интерфейсов, но все они менее гибки в использовании. Кроме того, есть инструменты только под командную строку, которые сильно упрощают жизнь и повышают эффективность разработки:
Управление проектами (Project management)
Наряду с issues, благодаря которым разработчики получают обратную связь от пользователей, интерфейс предлагает и другие функции, позволяющие управлять проектами.
Одна из них – Projects. Это новый раздел, который очень редко используется. Это система «Канбан», которая помогает организовать баги и работу, которую необходимо выполнить.
Также в управлении проектами помогают контрольные точки. Это часть страницы issues. Вы можете соотнести проблемы с определенными контрольными точками, которые могут быть целями релизов.
Представив релизы, GitHub расширил функциональность тегов GIT.
Тег GIT — это указатель на конкретную версию. Если он выполняется последовательно, то помогает вам вернуться к предыдущей версии кода без ссылки на конкретные версии.
Релиз построен на основе тегов GIT и представляет собой полную версию вашего кода, а также zip-файлы, заметки о выпуске и двоичные ресурсы, которые могут представить полностью рабочую версию конечного продукта кода.
Хотя тег GIT можно создавать программно (например, с помощью тега git из командной строки), создание релизов GitHub – это ручной процесс, который происходит в пользовательском интерфейсе GitHub. Вы, по сути, говорите GitHub создать новый релиз и сообщаете, к какому тегу вы хотите применить его.
Сравнение коммитов на GitHub
GitHub предлагает множество инструментов для работы с кодом.
Одна из самых важных вещей, которые вы можете сделать, — это сравнить одну ветку с другой. Вы также можете сравнить последний коммит с тем, который используете в данный момент, чтобы увидеть, какие изменения были внесены с течением времени.
Webhooks и Services на GitHub
GitHub предоставляет множество функций, которые помогают рабочему процессу разработчика: например, вебхуки и сервисы.
Webhooks
Вебхуки позволяют пинговать внешние сервисы, когда в репе происходят определенные события. Например, это может произойти, когда для кода используется команда push, создается ответвление или если тег создается или удаляется.
Когда происходит событие, GitHub отправляет запрос POST на URL, который мы говорим ему использовать.
Обычно эта функция используется для проверки связи с удаленным сервером. Это нужно, чтобы получить последний код из GitHub, когда мы отправляем обновление с нашего локального компьютера.
Мы отправляем команду push к GitHub, он сообщает серверу об этом, и сервер извлекает данные.
Services
Сервисы GitHub и новые приложения представляют собой сторонние интеграции, которые улучшают работу разработчика или предоставляют услуги.
Как устроен и работает GitHub
Одна из главных функций GitHub — контроль версий. Все изменения в коде можно отследить, поэтому в командной разработке это незаменимая вещь.
Кроме того, для начинающих разработчиков GitHub — это не только хостинг, но и способ собрать портфолио. Он позволяет продемонстрировать свои навыки и знания в виде реализованных проектов — во вкладке Repositories.
Из чего состоит проект в GitHub
Ветка main (или master). Это, как правило, основная ветка, в которой лежит самая актуальная, рабочая версия проекта.
Ветки и коммиты (branch & commits). Ветка в GitHub — это история разработки, состоящая из изменённых файлов и сообщений (коммитов). Нарисуем ветку с коммитами, чтобы визуально её представить.
Коммит (commit) — это специальное сообщение, в котором мы указываем, что сделали за эту итерацию. Когда отправим коммит с файлами на сервер, сможем просмотреть изменения, если кликнем по нему на GitHub. Для изучения будем использовать репозиторий с простым проектом.
Коммит состоит из сообщения (например, «сделали index.html») и файлов, которые мы прикрепили к коммиту. К ним автоматически добавляются время, автор и указатель HEAD.
Указатель HEAD позволяет гибко откатиться до нужной версии. HEAD на скриншоте ниже выглядит так: a8160621b3c61a07b6bbc75b41e5530ee997124b.
Пример. Мы запушили (от слова push, то есть отправили на сервер) коммит с сообщением «правки по коду» в ветку main, но поняли, что они ломают важную логику и версия теперь нестабильна. При помощи указателя коммита HEAD мы можем откатиться до предыдущего коммита («добавили слайдер») и вернуть стабильную версию, которая была в коммите «сделали index.html».
Стабильная и актуальная версия проекта, как правило, лежит в ветке main. Но мы можем создавать и свои ветки для новых задач, чтобы:
Пример. Разработчик Ваня берёт задачку по вёрстке index.html в ветке index. А разработчица Лена — catalog.html, в ветке catalog. На картинке ниже вы увидите, как это будет выглядеть на нашем визуальном отображении веток. Последний коммит в каждой ветке будет «добавили сборку».
Ваня быстрее Лены заканчивает свою задачку, делает коммит «сделал index.html» в свою ветку:
После того как он сольёт свою ветку в main, в ней появится его последний коммит «сделал index.html»:
Лена может забрать актуальную версию main (pull) в свою ветку. Тогда история её коммитов будет выглядеть так: «добавили сборку, сделал index.html».
Слияние веток
Ветки позволяют просматривать изменения. А чтобы сделать их слияние, понадобится функция pull request (pr).
Пример. Создаём ветку branch-1 в нашем репозитории и делаем в неё пуш коммита «Добавили данные»:
После этого мы можем сделать pull request в любую ветку, то есть заявку на слияние веток. GitHub сам подсветит изменённые строки, что очень удобно для ревью кода. Красным подсвечиваются удалённые строки, зелёным — добавленные.
Ревью кода
Когда над проектом ведут работу несколько разработчиков, очень важно, чтобы каждый понимал, что происходит в проекте, уточнял спорные моменты и предлагал более оптимальные решения. Этот процесс называется code review (ревью кода).
После того как ревью проведено, все спорные моменты решены, ошибки поправлены и есть подтверждения от других разработчиков (approve), происходит слияние веток (merge). Все коммиты из ветки branch-1 попадают в main, а в истории коммитов появляется отметка о слиянии.
Это вводная статья по GitHub, которая поверхностно описывает основные процессы. О создании веток и управлении ими мы обязательно расскажем в следующих материалах.
GitHub — это хостинг: он позволяет хранить проекты удалённо на сервере и работать с ними из любой точки мира. Доступ к файлам есть у всех, у кого есть ссылка.
Одна из главных функций GitHub — контроль версий. Все изменения в коде можно отследить, поэтому в командной разработке это незаменимая вещь.
Кроме того, для начинающих разработчиков GitHub — это не только хостинг, но и способ собрать портфолио. Он позволяет продемонстрировать свои навыки и знания в виде реализованных проектов — во вкладке Repositories.
Из чего состоит проект в GitHub
Ветка main (или master). Это, как правило, основная ветка, в которой лежит самая актуальная, рабочая версия проекта.
Ветки и коммиты (branch & commits). Ветка в GitHub — это история разработки, состоящая из изменённых файлов и сообщений (коммитов). Нарисуем ветку с коммитами, чтобы визуально её представить.
Коммит (commit) — это специальное сообщение, в котором мы указываем, что сделали за эту итерацию. Когда отправим коммит с файлами на сервер, сможем просмотреть изменения, если кликнем по нему на GitHub. Для изучения будем использовать репозиторий с простым проектом.
Коммит состоит из сообщения (например, «сделали index.html») и файлов, которые мы прикрепили к коммиту. К ним автоматически добавляются время, автор и указатель HEAD.
Указатель HEAD позволяет гибко откатиться до нужной версии. HEAD на скриншоте ниже выглядит так: a8160621b3c61a07b6bbc75b41e5530ee997124b.
Пример. Мы запушили (от слова push, то есть отправили на сервер) коммит с сообщением «правки по коду» в ветку main, но поняли, что они ломают важную логику и версия теперь нестабильна. При помощи указателя коммита HEAD мы можем откатиться до предыдущего коммита («добавили слайдер») и вернуть стабильную версию, которая была в коммите «сделали index.html».
Стабильная и актуальная версия проекта, как правило, лежит в ветке main. Но мы можем создавать и свои ветки для новых задач, чтобы:
Пример. Разработчик Ваня берёт задачку по вёрстке index.html в ветке index. А разработчица Лена — catalog.html, в ветке catalog. На картинке ниже вы увидите, как это будет выглядеть на нашем визуальном отображении веток. Последний коммит в каждой ветке будет «добавили сборку».
Ваня быстрее Лены заканчивает свою задачку, делает коммит «сделал index.html» в свою ветку:
После того как он сольёт свою ветку в main, в ней появится его последний коммит «сделал index.html»:
Лена может забрать актуальную версию main (pull) в свою ветку. Тогда история её коммитов будет выглядеть так: «добавили сборку, сделал index.html».
Слияние веток
Ветки позволяют просматривать изменения. А чтобы сделать их слияние, понадобится функция pull request (pr).
Пример. Создаём ветку branch-1 в нашем репозитории и делаем в неё пуш коммита «Добавили данные»:
После этого мы можем сделать pull request в любую ветку, то есть заявку на слияние веток. GitHub сам подсветит изменённые строки, что очень удобно для ревью кода. Красным подсвечиваются удалённые строки, зелёным — добавленные.
Ревью кода
Когда над проектом ведут работу несколько разработчиков, очень важно, чтобы каждый понимал, что происходит в проекте, уточнял спорные моменты и предлагал более оптимальные решения. Этот процесс называется code review (ревью кода).
После того как ревью проведено, все спорные моменты решены, ошибки поправлены и есть подтверждения от других разработчиков (approve), происходит слияние веток (merge). Все коммиты из ветки branch-1 попадают в main, а в истории коммитов появляется отметка о слиянии.
Это вводная статья по GitHub, которая поверхностно описывает основные процессы. О создании веток и управлении ими мы обязательно расскажем в следующих материалах.