Работа с github на windows

GitHub Desktop позволяет расширить и упростить рабочий процесс Git и GitHub за счет визуального интерфейса.

About GitHub Desktop

GitHub Desktop is a free, open source application that helps you to work with code hosted on GitHub or other Git hosting services. With GitHub Desktop, you can perform Git commands, such as committing and pushing changes, in a graphical user interface, rather than using the command line. For more information, see «About GitHub Desktop.»

Sharing feedback

If you have feedback or feature requests, you can open an issue in the desktop/desktop repository.

Время на прочтение
6 мин

Количество просмотров 1.2M

Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.

Итак, сайт github.com позиционируется как веб-сервис хостинга проектов с использованием системы контроля версий git, а также как социальная сеть для разработчиков. Пользователи могут создавать неограниченное число репозиториев, для каждого из которых предоставляется wiki, система issue tracking-а, есть возможность проводить code review и многое другое. GitHub на данный момент является самым популярным сервисом такого рода, обогнав Sourceforge и Google Code.

Для open-souce проектов использование сайта бесплатно. При необходимости иметь приватные репозитории, есть возможность перейти на платный тарифный план:

Начнем с регистрации. Идем по ссылке github.com/signup/free и вводим свои данные.
После регистрации мы попадаем на Dashboard нашего аккаунта:

Сейчас у нас нет ни одного репозитория, и мы можем либо создать новый репозиторий, либо ответвиться (fork) от уже существующего чужого репозитория и вести собственную ветку разработки. Затем, при желании, свои изменения можно предложить автору исходного репозитория (Pull request).

Но для начала установим git и настроим его для работы с сайтом.

Если вы работаете в Windows, качаем и устанавливаем msysgit. Это консольная версия git для Windows (далее расказ будет вестись на примере этой ОС).
Инструкция для MacOS X (eng)
Инструкция для Linux (eng)
Проблем возникнуть не должно, просто везде жмем Next. После установки выбираем в контекстном меню Проводника Git Bash:

или через Git Bash.lnk в папке с установленой программой:

Прописываем в консоли свои данные и настройки переносов строк:
git config --global user.name "ваше имя"
git config --global user.email "ваша почта"
git config --global core.autocrlf true
git config --global core.safecrlf true

Кстати, рекомендую пройти неплохой интерактивный курс по использованию git из консоли. Курс проходится за несколько часов и дает необходимые базовые навыки.

Для тех, кто предпочитает gui — для Windows существует несколько таких инструментов для работы с git. Два основных — это SmartGit (кроссплатформенный) и TortoiseGit. Оба неплохие, и какой использовать — дело вкуса. Я опишу работу с TortoiseGit.
Для маков выбор giu тоже имеется.

  • официальный клиент от GitHub — на мой взгляд пока достаточно сыроват.
  • GitX — лично мне не приглянулся
  • GitBox — наиболее следует mac-way, очень рекомендую попробовать именно его

Качаем по ссылке code.google.com/p/tortoisegit/downloads/list. При установке везде жмем Next.

Теперь возвращаемся к github и создадим новый репозиторий. Находясь на Dashboard, жмем New Repository (https://github.com/repositories/new), вводим данные и жмем Create Repository.

GitHub позволяет работать с репозиториями тремя способами: SSH, HTTP и Git Read-Only, соответственно предоставляя ссылки трех видов для нашего репозитория:
1. git@github.com:habrauser/Hello-world.git
2. habrauser@github.com/habrauser/Hello-world.git
3. git://github.com/habrauser/Hello-world.git

Для того, чтобы просто забрать репозиторий на локальную машину, достаточно внутреннего протокола git (третья ссылка). Это наиболее быстрый и эффективный способ, который обеспечивает анонимный доступ только для чтения.

Если же мы захотим внести изменения в репозиторий на github, нужно пользоваться HTTP или SSH.
Работа по http никаких трудностей не вызывает, в нужный момент просто используется пароль учетной записи на github.

Чтобы использовать SSH, нам нужно создать специальную пару ключей: публичный и приватный. Публичный будет размещен в настройках аккаунта на github, а приватный сохранен на локальной машине.

Для генерации ключей, можно воспользоваться инструментом ssh-keygen, который идет в комплекте с git (описание этого способа можно почитать тут). Мы же будем использовать PuTTY (а точнее небольшую программку puttygen, входящую в его состав). PuTTY — это такой клиент для удаленного доступа, в том числе и с использованием SSH.

Качаем последнюю версию с официального сайта (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html). Кстати, puttygen более старой версии (2007 год) идет в составе TortoiseGit.

После установки PuTTY, запускаем puttygen из папки с установленной программой:

Жмем Generate, двигаем некоторое время курсором мыши, для получения случайных данных, необходимых алгоритму

Вводим пароль, защищающий наш приватный ключ в поле Key passphrase, вводим подтверждение, жмем Save private key, сохраняем.

Далее копируем публичный ключ в формате OpenSSH из текстовой области «Public key for pasting…» и идем в настройки нашего аккаунта на github (Account Settings) в раздел SSH Public Keys:

жмем Add another public Key, вставляем наш публичный ключ:

нажимаем Add key. Все, теперь мы готовы работать с github по ssh. Попробуем забрать наш пустой рерозиторий на локальную машину с использованием TortioшseGit. В контекстном меню проводника выбираем Git Clone…

В поле Url вставляем SSH-адрес нашего репозитория, в поле Load Putty Key указываем путь к нашему приватному ключу, жмем OK.

Pageant запросит у наc пароль для приватного ключа (потом этого делать не потребуется)

Pageant — это агент SSH-аутентификации в составе PuTTY, он позволяет управлять закрытыми ключами.
В трее висит его значек:

Репозиторий успешно склонирован на локальную машину

Теперь попробуем изменить локальный репозиторий и отправить изменения на github. Добавим в локальный репозиторий файл README (файл с именем README обрабатывается github специальным образом — его содержимое будет отображаться в качестве описания репозитория на соответствующей странице)

Закоммитим изменения в локальный репозиторий

и синхронизируем его с репозиторием на github:

нажимаем Push

Теперь зайдя на страницу нашего репозитория мы увидим следующее:

Для каждого репозитория сайт предлагает wiki:

а также простую систему issue tracking-a:

кстати, для тех, кто использует в работе Eclipсe — есть соответствующий mylyn-коннектор для github:

и плагин EGit:

По ссылке Explore GitHub открывается каталог репозиториев, в котором можно искать по множеству других критериев, в том числе по языкам программирования, популярности и т.п.

Резюмируя хочется сказать, что если вы начинающий разработчик, планирующий начать пользоваться системами контроля версий, или же более опытный и присматривающийся к распределенным VCS, но не знающий как начать, то есть смысл попробовать git, используя такой замечательный инструмент как github.com.

Полезные ссылки

Для работы с git:
code.google.com/p/msysgit git для windows
www.syntevo.com/smartgit/index.html SmartGit
code.google.com/p/tortoisegit TortoiseGit
http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY

Про git на русском:
habrahabr.ru/blogs/Git/106912 «Удачная модель ветвления для git» — перевод хорошей англоязычной статьи
githowto.com интерактивный курс по работе с git из консоли
habrahabr.ru/blogs/Git/106912 «Почему git» + обсуждение
habrahabr.ru/blogs/development/68341 «Git для переходящих с SVN» + обсуждение
habrahabr.ru/blogs/Git/75990 «Командная работа в git» + обсуждение
progit.org/book/ru русский перевод книги «Pro Git» (переведено не до конца)
habrahabr.ru/blogs/Git/123111 инструкция-шпаргалка для начинающих
los-t.livejournal.com/tag/git%20guts цикл постов «внутренности git»
lib.custis.ru/%D0%9B%D0%B8%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81_%D0%BE_GIT_%D0%BD%D0%B0_Google_Talks Линус Торвальдс о git
habrahabr.ru/blogs/Git/80909 книга «Волшебство git»

Про git на английском:
книги

  • progit.org/book книга «Pro Git»
  • rutracker.org/forum/viewtopic.php?t=2808582 книга «Version Control with Git», 2009, O’Reilly
  • book.git-scm.com книга «Git Community Book»
  • rutracker.org/forum/viewtopic.php?t=2808843 книга «Pragmatic Version Control Using Git», 2008, T. Swicegood
  • rutracker.org/forum/viewtopic.php?t=3239579 книга «Pragmatic Guide to Git», 2010, T. Swicegood. Описываемая версия git: 1.7.2.1. Книга в формате двустраничных разворотов — проблема/решение
  • rutracker.org/forum/viewtopic.php?t=900767 книга «Git Internals»
  • http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html книга «Git Magic»

видео

  • rutracker.org/forum/viewtopic.php?t=3520513 видеокурс, посвященный git. Довольно нескучный и с юмором.
  • www.youtube.com/watch?v=8dhZ9BXQgc4 лекция о git от Randal Schwartz
  • excess.org/article/2008/07/ogre-git-tutorial видеотуториал Git The Basics Tutorial

другое

  • gitref.org референс для изучения наиболее используемых команд
  • ftp.newartisans.com/pub/git.from.bottom.up.pdf инструкция по принципу «снизу вверх», т.е. от низкоуровнего устройства git к верхнеуровневым командам. Автор утверждает, что так информация лучше воспринимается
  • ndpsoftware.com/git-cheatsheet.html хороший cheatsheet
  • whygitisbetterthanx.com преимущества git в сравнении с другими VCS
  • devcheatsheet.com/tag/git подборка cheatsheets

#статьи


  • 0

Краткий ликбез по самой популярной в мире платформе для хостинга IT‑проектов и совместной разработки.

Иллюстрация: GitHub / Colowgee для Skillbox Media

83 миллиона пользователей, четыре миллиона организаций и 200 миллионов репозиториев. В Сети много сервисов для размещения исходного кода своих проектов, но говорят чаще всего именно про GitHub. В чём же дело?

Конечно, известный владелец сервиса (Microsoft) и привычка играют свою роль, но главная причина — возможности платформы.

  • Что такое GitHub и чем он отличается от Git
  • Как понять, нужен ли вам GitHub
  • Основные концепции GitHub простыми словами
  • Создание репозитория и загрузка файлов
  • Просмотр файлов в репозитории
  • Поиск и чтение репозиториев
  • Создание веток
  • Переключение веток и решение конфликтов
  • Настройка описания репозитория
  • Создание сайта из вашего GitHub-профиля
  • Подключение GUI-клиента GitHub Desktop
  • Работа с GitHub через CLI
  • Настройка GitHub-профиля
  • Вместо end()

GitHub — это облачная платформа для хостинга IT-проектов и совместной разработки, под капотом которой находится популярная система контроля версий Git, а также полноценная социальная сеть для разработчиков.

Здесь можно найти кучу open-source-проектов на разных языках и поучаствовать в них, разместить своё портфолио с примерами кода, чтобы приложить ссылку к резюме, подглядывать в открытых проектах интересные архитектурные решения, смотреть, как опытные разработчики пишут код, и скачивать огромное количество полезных в разработке и бесплатных инструментов для разработки. Кстати, некоторые умельцы умудряются собирать в GitHub целые библиотеки — книг и статей, а не программистские либы :)

И да, если вы недовольны какими-то фичами в любимой открытой программе и она выложена на GitHub, вы всегда можете прийти и поругаться в комментариях к проекту :) А лучше всего — оформить issue (мы расскажем, что это) и самостоятельно пофиксить проблему на радость всем пользователям. Не забывайте и благодарить авторов классных открытых проектов — донатами и просто тёплыми словами. Им будет очень приятно.

Придя практически в любую IT-компанию, вы столкнётесь с тем, что код где-то хранится — и в подавляющем большинстве случаев этим «где-то» будет именно GitHub. У GitHub есть довольно известный конкурент — GitLab, он тоже основан на Git, но это разные платформы разных компаний, хотя их функциональность очень похожа.

А ещё не стоит путать GitHub и Git. GitHub — лишь одна из реализаций системы контроля версий Git (только взгляните на полный список Git-клиентов с графическим интерфейсом), в которую добавлено много удобных инструментов и возможностей (те же комментарии, issues, гиперссылки, форматированный текст и тому подобное). Помните, GitHub можно использовать и без знания Git (обратное тоже верно).

Ну как, звучит круто? Тогда приступайте к нашему гайду о том, как пользоваться GitHub, чтобы во всём разобраться и вообще понять, нужен ли он вам прямо сейчас.

Безусловно, GitHub нужен не всем. Допустим, вы ещё только учитесь кодить или неспешно делаете небольшой проект для личного пользования — и вас устраивает хранение проекта на локальной машине. Может, сейчас вы просто учите язык, который вам нравится, и на данном этапе не хотите хвататься за всё сразу.

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

И действительно, есть множество других способов хранения исходников: можно создать для них папку в разделе «Мои документы», закидывать их в облако и подписывать версии или даже загружать в «Избранное» в Telegram или «ВКонтакте» (костыльно, да, но вполне реально).

А ещё можно накидывать список изменений в заметках в телефоне/на холодильнике текстом в приватном Telegram-канале. Можно деплоить проект с помощью простого скачивания и распаковки ZIP-архива с файлами вашей программы (особенно если цель — просто показать программу другу или девушке, которой вы пришли «помочь с ноутбуком» ^_^). В конце концов, можно сообщать о багах в вашем любимом фреймворке сообществу анонимов в паблике в VK — возмущаться вместе очень весело.

Все эти способы по-своему хороши, но для работы в IT нужно привыкать к GitHub: это стандарт индустрии.

Интересный факт: недавно появилась российская альтернатива GitHub под названием GitFlic. Команда сервиса заявила, что намерена дать «новый импульс разработке отечественных операционных систем, программ, приложений и серверных решений». Среди цепляющих возможностей — интеграция с Telegram.

Большая часть необходимых возможностей GitHub бесплатна, хотя у платформы есть и платные тарифы — однако с ними можно долго не сталкиваться, потому что бесплатных обычному разработчику хватает с лихвой.

Это Фрай. Он не смог использовать GitHub и улетел в будущее. Не будьте как Фрай
Кадр: мультсериал «Футурама»

Новичков интерфейс GitHub может сбивать с толку: за годы с момента создания площадка обросла множеством инструментов, но главное остаётся неизменным.

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

Как заливать файлы, создавать репозитории и проводить другие операции, мы рассмотрим в следующем разделе, так что не пугайтесь упоминания разных действий в определениях терминов — всё покажем с картинками :)

Это просто корневая папка с файлами и вложенными директориями вашей программы — и одновременно её страница на GitHub. Загрузить в репозиторий можно всё что угодно, но предполагается, что вы будете хранить в нём файлы с исходным кодом и какие-нибудь дополнительные материалы — допустим, необходимую для GUI или вёрстки графику (картинки, иконки и тому подобное).

Репозитории могут быть публичными и приватными, в них можно создавать другие папки и отслеживать изменения версий. Управлять своими репозиториями можно прямо через интерфейс сайта, командную строку, десктопное приложение GitHub или различные средства разработки (IDE), поддерживающие интеграцию с сервисом.

В ветки группируются изменения и обновления — допустим, одна главная ветка (по умолчанию создаётся main) и одна beta. Ветки независимы друг от друга, но при желании их можно объединять (merge — слияние) — даже если между ними есть разница в коде.

Внести в содержимое репозитория изменения можно напрямую или создав копию. Само внесение изменений называется «коммит» (от английского commit — совершить), у него есть временная метка и хеш-сумма.

Перенос изменений-коммитов из локального репозитория (на вашем ПК) на удалённый (remote repository, то есть в данном случае на GitHub) называется «пуш» (push) — от английского «толкать» (дословно — «проталкивать» изменения).

Скопировать репозиторий для внесения изменений в копию можно двумя основными способами:

  • клонировать (clone) — то есть просто скопировать на локальный компьютер или сервер;
  • или форкнуть (от английского fork — развилка) — сделать отдельную копию репозитория (обычно чужого) для продолжения разработки «по другому пути развилки».

Если вы форкнули чужой проект, чтобы предложить автору конкретные улучшения, нужно по готовности «запулить» их в исходный репозиторий — то есть сделав pull request (запрос на изменения).

Это 90% необходимых фактов. Более скучные подробности описаны в документации и разделе обучения GitHub, а также в руководстве по самому Git, ну а мы попробуем применить всё это на практике.

Конечно, самый простой способ пользоваться GitHub — через сайт, поэтому начнём отсюда.

Самые типичные действия при работе с репозиторием — его создание и загрузка файлов, их мы уже рассматривали ранее. Легко убедиться, что обе задачи занимают не больше 30 секунд.

Очень кратко повторим выводы из нашего прошлого материала:

  • для создания репозитория нужно нажать на + в правом верхнем углу сайта, выбрать пункт New Repository, заполнить название и описание, проставить нужные галочки и щёлкнуть на Create Repository;
  • для загрузки файлов нужно зайти в нужный репозиторий, щёлкнуть на Add file и выбрать Upload files.

Шаг 1. Создание GitHub-репозитория в веб-версии
Скриншот: Skillbox Media

Шаг 2. Страница создания GitHub-репозитория
Скриншот: Skillbox Media

Но для обучения Тёмной стороне Силы работе с GitHub полезно потренироваться выполнять и другие необходимые в процессе разработки действия: клонирование/форк, объединение веток, просмотр и разрешение конфликтов и другие.

Давайте пошагово пройдём всё это вместе — сначала через сайт, а потом взглянем одним глазком на работу через GUI-клиенты и интерфейс командной строки (CLI).

Выбор файлов в GitHub-репозитории для их просмотра
Скриншот: Skillbox Media

Согласитесь, что в ряде случаев удобно не скачивать исходники, а просто бегло ознакомиться с ними. Для таких простых операций вовсе не нужен десктопный клиент: все файлы можно быстро открыть в веб-версии (и код, и те же картинки). Просто щёлкните по ним для просмотра!

На этой картинке — просмотр файла с кодом. Всё как полагается: есть нумерация строк и подсветка синтаксиса
Скриншот: Skillbox Media

А здесь — просмотр картинки, которая нужна нам для GUI и потому также залита в репозиторий
Скриншот: Skillbox Media

Хотя сёрфинг по чужим репозиториям — залипательное времяпровождение, в первую очередь это один из способов нахождения полезных инструментов вам в помощь. Над многими функциями, которые вы хотели бы добавить в своё приложение, уже кто-то работал, остаётся только найти GitHub-репозитории таких проектов.

Как и в других случаях поиска, вы можете выйти на нужный репозиторий из поисковика или через внутренний поиск по GitHub.

Для примера: это официальный GitHub-репозиторий Android-приложения Telegram. Смотрим на детали: краткое описание — About (Telegram for Android source), две ветки (там master и dev), в мастере 462 коммита, 227 пул-реквестов, последний релиз шесть дней назад, лицензия GPL 2.0, 1,2 тысячи наблюдателей, 7,1 тысячи форков и целая 21 тысяча добавлений в закладки
Скриншот: Skillbox Media

Важнее другое — на что обращать внимание. Пройдёмся по некоторым пунктам со скриншота выше.

Во-первых, самое очевидное — это описание на главной странице. Именно в нём находится ответ на ваш главный вопрос — что это и чем может вам помочь.

Если точнее, предусмотрено два описания репозиториев — краткое (один абзац справа вверху) и полное (по центру, под списком файлов).

Если репозиторий кажется полезным, дальше нужно понять, на каких условиях вы можете его использовать, что зависит от указанной автором лицензии.

После этого оцените, подходит ли вам частота обновлений, — это можно сделать в разделе Releases (ссылка прямо под кратким описанием). Конечно, это зависит от ситуации: где-то может пригодиться инструмент, который не обновлялся четыре года, но чаще всего нужна хотя бы минимальная поддержка — то есть обновления минимум раз в несколько месяцев.

Важно знать и где посмотреть количество и содержание коммитов — кликабельный счётчик находится над списком файлов справа.

Наконец, стоит взглянуть и на количество отметок, демонстрирующих популярность проекта среди сообщества, — отслеживаний, форков и звёздочек (это в каком-то смысле местные аналоги лайков и репостов).

Ещё чуть ниже справа — одна из самых интересных штук: анализ используемых в репозитории языков программирования. В репозитории со скриншота выше набор выглядит так.

Языки программирования, на которых написан код загруженных в репозиторий исходников Android-приложения Telegram
Скриншот: Skillbox Media

Вообще, неплохо изучать репозитории известных приложений, которыми сами пользуетесь (как на скриншоте выше), и отмечать понравившиеся звёздочками. Это не только интересно — со временем GitHub изучит ваши предпочтения и станет предлагать в блоке Explore то, что вам может понравиться.

Пример: GitHub-репозиторий VK
Скриншот: Skillbox Media

Создаём альтернативную ветку №1 — koshka
Скриншот: Skillbox Media

Создать новую ветку очень просто:

  • Жмём на большую зелёную кнопку New branch.
  • Вводим название новой ветки.
  • Выбираем исходную ветку для копирования (то есть main, так как пока других и нет).
  • Щёлкаем на Create branch.

В данном случае нужно сначала уточнить, что имеется в виду: если необходимо просто зайти в альтернативную ветку, это можно сделать в списке веток репозитория (нужная ссылка есть над списком файлов).

Создадим также альтернативную ветку №2 (sava) и посмотрим, как всё это выглядит в итоге.

Список веток репозитория: основная и две альтернативных
Скриншот: Skillbox Media

Можно говорить и про переключение между ветками в другом смысле — когда изменения из альтернативной ветки сливают с главной веткой. Смотрите: у нас есть файл code.js, но его содержимое немного отличается:

  • в ветке main там JS-команда console.log («Дефолтная ветка») и картинка с великим маэстро современности Риком Эстли;
  • однако в ветке koshka тот же файл содержит команду console.log («Кошка!»);, а вместо Рика — смешной кот;
  • и всё совсем усложняется третьей веткой sava, где консольный вывод вида console.log («Сова!»); и используется картинка с совой (естественно, все перечисленные картинки во всех ветках называются одинаково — pic.jpg).

Получается, между ветками есть конфликт и просто слить любую из альтернативных веток с главной нельзя! Но для этого уже есть решение: GitHub предлагает нам сравнить конфликтующие ветки, и если мы захотим, то и запулить изменения в основную — то есть сделать тот самый pull request, о котором говорилось выше.

Так GitHub сообщает, что в некоторых ветках есть изменения
Скриншот: Skillbox Media

Вот как выглядит сравнение веток (c koshka и sava соответственно).

Сравнение ветки main с веткой koshka
Скриншот: Skillbox Media

Сравнение ветки main с веткой sava
Скриншот: Skillbox Media

Допустим, мы решаем принять изменения из ветки sava и создаём pull request с небольшим комментарием.

Создание пул-реквеста для слияния изменений из ветки sava с веткой main
Скриншот: Skillbox Media

Дальше он появляется в списке пул-реквестов репозитория, где мы определяем дальнейшую судьбу данного запроса на изменения.

В соответствующем разделе репозитория появился новый пул-реквест
Скриншот: Skillbox Media

Пул-реквест можно окончательно принять, подтвердив слияние (merge) веток, или отклонить, закрыв запрос (Close pull request).

Шаг 1. Рассмотрение пул-реквеста
Скриншот: Skillbox Media

Шаг 2. Рассмотрение пул-реквеста
Скриншот: Skillbox Media

При этом главную ветку main можно защитить от изменений, включив соответствующие опции в настройках репозитория (что вам и будет предложено при создании новых веток).

GitHub предлагает защитить ветку от нежелательных изменений
Скриншот: Skillbox Media

Чтобы поменять данный ряд параметров, зайдите в своём репозитории в раздел Settings -> Branches. Нужные настройки — в подразделе Branch protection rules (целых 10 галочек на выбор).

Основное описание вашего GitHub-проекта задаётся в файле Readme.md, который можно создать вместе с репозиторием или после. Расширение md — это просто сокращение от названия популярного языка упрощённой разметки контента — Markdown.

Содержимое файла Readme отображается на главной странице репозитория и отвечает на вопрос, что это за проект, чем он может быть полезен другим разработчикам и как им воспользоваться.

Чтобы оформить Readme со вкусом, можно воспользоваться руководством GitHub по markdown-разметке. Вот как будет выглядеть Readme нашего репозитория-примера после прокачки (первый и второй экран соответственно).

Настройка файла Readme GitHub-репозитория
Скриншот: Skillbox Media

Настройка файла Readme GitHub-репозитория
Скриншот: Skillbox Media

Обратите внимание: в оформлении можно использовать всё что угодно — заголовки разных уровней, выделение жирным/курсивом, изображения, эмодзи, ссылки и так далее.

Файл Readme может быть довольно длинным, но всё же для оформления большой документации GitHub рекомендует создать «Вики».

Захостить сайт на GitHub можно с помощью функции GitHub Pages. Это очень просто:

  • Зайдите в настройки репозитория.
  • В блоке Code and automation выберите Pages.
  • Выберите источник (Deploy from a branch, затем нужную ветку).
  • Кликните на Save.
  • Обновите страницу, и вверху страницы появится ссылка на ваш новый сайт.

Пример сайта на GitHub Pages
Скриншот: Skillbox Media

В случае создания сайта для продвижения себя, а не проекта, просто создайте репозиторий с кодом сайта-визитки и дайте ему имя вида [username].github.io, где username — название вашего аккаунта на GitHub. Более подробно про эту функцию — тут.

Если вам удобнее такой способ работы, здесь всё тоже просто. Опять же, повторим кратко выводы из нашего более подробного гайда на эту тему:

  • Скачиваем и устанавливаем сам клиент.
  • Авторизуемся в своей учётной записи.
  • Работаем с существующими репозиториями или создаём новые (локальные).

Главное меню GUI-клиента GitHub Desktop для Windows. Видим в списке и наш репозиторий skillbox_cool, описанный выше
Скриншот: Skillbox Media

Приложение предлагает выполнить клонирование репозитория на локальную машину для дальнейшей работы, что мы и сделаем.

Клонирование репозитория в десктопном клиенте GitHub
Скриншот: Skillbox Media

Клонированные из удалённого GitHub-репозитория файлы хранятся в специальной папке на вашем компьютере, и в них легко вносить изменения — клиент будет открывать их в выбранном вами редакторе кода / среде разработки (хотя удобнее всё по отдельности — выбрав нужный файл-исходник в папке).

В общем, всё просто, как раз-два-три.

Работать с GitHub можно и через командную строку Windows или PowerShell. Это не очень сложно: для начала интерфейс командной строки также нужно скачать и установить (документация — здесь).

Работа с GitHub CLI в PowerShell
Скриншот: Skillbox Media

Команды для GitHub CLI начинаются с сокращения gh — к примеру gh repo clone.

Интерфейс GUI Git
Скриншот: Skillbox Media

Есть и другой вариант — использовать собственно Git и работать через его собственный CLI. Git скачивается и устанавливается отдельно, там есть минималистичный GUI, но его уже логичнее использовать в терминале.

Работа с Git CLI в PowerShell
Скриншот: Skillbox Media

Главное, что нужно про это знать: все команды Git начинаются соответственно — со слова git, после чего указывается тип действия: git clone, git merge, git fork и прочее. Чтобы воспользоваться ими, установите Git, распечатайте себе любую памятку по его командам и смело начинайте ими пользоваться.

Кастомизация профиля — важная часть самопрезентации разработчика: резюме, визитная карточка и витрина проектов, над которыми вы работали.

Эту информацию оценивают работодатели, поэтому стоит заполнить информацию о себе и сделать публичными несколько ваших лучших репозиториев (конечно, если там ничего секретного :)) — именно они будут частью вашей персональной витрины.

Посмотрим на профиль какого-нибудь крутого разработчика из тех, кто сейчас в тренде GitHub (да-да, есть и такой раздел).

Топ-25 разработчиков по версии GitHub (на момент написания материала)
Скриншот: личный архив автора

На первом месте — некий Стивен Селис. А что в его профиле? Указано место работы, есть сайты и контакты, а в статистике — 123 репозитория и 1725 изменений в репозиториях за год (круглый год). То есть невооружённым глазом видно, что человек как минимум активный и опытный.

GitHub-профиль одного из топовых разработчиков (1-е место в рейтинге GitHub на ноябрь 2022 года). Зелёные квадратики — это активность автора
Скриншот: Skillbox Media

Даже если вы пока ещё не в топе GitHub, нужно стремиться к подобному наполнению профиля: подробная информация + показательный ряд проектов (вы можете закреплять их по-своему, нажав в собственном профиле на Customize your pins).

Всё не так сложно, как может показаться (говоря иносказательно, каждый разработчик в своей жизни сначала учится есть вилкой, а потом — форкать GitHub-репозитории).

GitHub пользуются все: это один из важных общих навыков вне зависимости от выбранного вами языка программирования и направления разработки. И, как и школьные уроки ОБЖ, тот же git clone когда-нибудь вас спасёт.

Поэтому важно начинать пользоваться GitHub как можно раньше — хотя бы даже для бэкапов учебного кода, и уже скоро это станет полезной привычкой.

Жизнь можно сделать лучше!
Освойте востребованную профессию, зарабатывайте больше и получайте от работы удовольствие. А мы поможем с трудоустройством и важными для работодателей навыками.

Посмотреть курсы

Что такое Git, регистрируемся на GitHub, для чего нужен GitHub Desktop, установим и рассмотрим его базовое использование

Так как эти темы довольно обширные, в статье рассмотрим их обзорно, с минимально необходимой информацией, для общего понимания и базовой работы с GitHub Desktop.

Что такое Git

Определение из Wikipedia

Git (произносится «гит») — распределённая система управления версиями.

Система управления версиями — определение из Wikipedia

Система управления версиями (от англ. Version Control System, VCS или Revision Control System) — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.

Если мы верстаем или программируем, не используя систему Git, то в нашем распоряжении только тот код, который пишем сейчас.

При использовании системы Git мы запоминаем версии кода на нужных нам этапах. Имеем доступ к ранним версиям. Можем смотреть изменения, которые были сделаны между версиями. Можем отменить изменения до любой из версий.

В статье часто будем использовать термин Git, чтобы проще было понять, представим, что Git это условная “записная книжка”, в которую будем записывать, какие изменения происходят в нашем проекте. Добавили файл — записываем, что файл добавлен. Изменили файл — записываем изменения, которые были сделаны в файле. Удалили файл — записываем что файл был удален. И все эти записи храняться в “записной книжке” Git

Технически Git для проекта — это скрытая папка .git в папке вашего проекта. Скрытая папка .git содержит служебные файлы, которые нельзя изменять и удалять

У Git много возможностей, но на данный момент рассматриваем только базовые


Информация из Wikipedia

GitHub — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.

Введем еще один термин, который также будет часто встречаться в статье и в работе с GitHub Desktopрепозиторий.

Репозиторий — определение из Wikipedia

Репозито́рий (англ. repository), хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.

Если говорить совсем просто, то репозиторий — это наш проект (папка с файлами и системой Git)

Репозиторий может храниться локально на компьютере или чаще всего на таких веб-сервисах, как GitHub


Для чего нужен Github Desktop

Работа с Git подразумевает работу через командную строку, но компания GitHub выпустила приложение, которое сильно упрощает использование Git

Для работы с GitHub Desktop, необходимо зарегистрироваться на GitHub


Регистрация на GitHub

Переходим на официальный сайт GitHub

На главной странице заполняем форму справа и нажимаем “Sign up for GitHub”

1

Проходим проверку и нажимаем “Join a free plan”

2

На следующей странице можно заполнить небольшую анкету (можно не заполнять)

3

На этой же странице спускаемся в самый низ и нажимаем “Complete setup”

4

Далее для завершения регистрации просят подтвердить свой email адрес.

Проверяем свою почту. Если письмо пришло, переходим к следующему пункту.

Если письмо не пришло, нажимаем “Resend verification email”.

Если по-прежнему письмо не приходит, можно проверить и изменить настройки — нажимаем “Change your email settings”

5

В письме от Github нажимаем “Verify email address”

6

Аккаунт GitHub успешно создан


Установка GitHub Desktop

Переходим на официальный сайт GitHub Desktop

Нажимаем “Download for Windows (64bit)” (операционная система может отличаться)

7

Запускаем скачанный файл. После установки в появившемся окне нажимаем “Sign in to GitHub.com”

8

В открывшемся окне браузера вводим в форму свои данные, как при регистрации, и нажимаем “Sign in”

9

Если браузер запросит, то подтвердить, что нужно “Открыть приложение GitHub Desktop”

10

Далее регистрационные данные перенесутся в форму конфигурации (настроек) Git — нажимаем “Continue”

11

Отключаем пункт “Yes, submit periodic usage stats”, если не хотите периодически передавать статистику работы GitHub Desktop и нажимаем “Finish”

12

Далее видим начальное окно GitHub Desktop

13

“Create a tutorial repository…“ — создать обучающий репозиторий

“Clone repository from the Internet…“ — клонировать (скопировать/скачать) репозиторий из GitHub к себе на компьютер

“Create a New Repository on your hard drive…“ — создать новый репозиторий на вашем жестком диске (на вашем компьютере) и добавить систему Git в проект

“Add an Existing Repository from your hard drive…“ — добавить на GitHub репозиторий, который уже есть на вашем компьютере и использует Git

Справа будут отображаться ваши репозитории, которые уже загружены на GitHub, но если только что зарегистрировались, то список будет пуст.


Создаём новый репозиторий

Создаём у себя на компьютере (например, на диске C:) папку projects, где локально будут храниться все наши репозитории.

Переходим в Github Desktop, нажимаем на начальном экране “Create a New Repository on your hard drive…“ или File > New Repository

13

В открывшемся окне в поле Name пишем название репозитория. В поле Description — описание репозитория, если необходимо. В Local Path выбираем созданную на диске C: папку projects, остальное оставляем по-умолчанию и нажимаем “Create repository”

14

В папке projects появился репозиторий Project-1

15

В репозитории Project-1 на данный момент находятся только необходимые служебные файлы Git.

16

На данный момент репозиторий расположен только локально на компьютере в папке Project-1. Чтобы репозиторий появился в аккаунте GitHub и хранился там, нажимаем “Publish repository”

17

В появившемся окне оставляем все по-умолчанию. Пункт “Keep this code private” оставляем отмеченным, чтобы репозиторий, пока что, был виден только нам, потом в любой момент репозиторий можно будет сделать открытым, чтобы его видели другие пользователи GitHub. Нажимаем “Publish repository”

18

Теперь репозиторий скопирован в аккаунт GitHub. Переходим в браузере на GitHub. Сверху справа нажимаем на круглую иконку аккаунта и выбираем пункт “Your repositories”

19

На странице наших репозиториев появился созданный репозиторий Project-1

20

Откроем страницу репозитория, нажав на название репозитория в списке. На данный момент в репозитории только служебные файлы.

21

Создадим на компьютере в папке Project-1 файл index.html и напишем в нем минимальную разметку.

22

На данный момент файл index.html расположен только локально в папке Project-1. Локальная система Git, которая была создана вместе с репозиторием, об этом файле ничего не знает.

Чтобы Git узнала, что в репозиторий добавился файл, необходимо сообщить это через команду Commit.

Commit — фиксирование текущего состояния файлов, звучит как коммит.

Коммитам необходимо давать названия.

Откроем Github Desktop. Во вкладке Changes видим созданный index.html.

Вводим в поле ниже название коммитаadd index.html. Затем нажимаем “Commit to main”, чтобы зафиксировать данное состояние файлов в локальную систему Git. (На данный момент не будем углубляться в ветвление Git)

23

На данный момент мы зафиксировали файлы в текущем состоянии и сделали запись об этом в локальную систему Git.

Далее, чтобы передать изменения в репозиторий на GitHub, нажимаем “Push origin”

24

Переходим в наш репозиторий на GitHub и убеждаемся, что файл index.html был добавлен

25

Далее внесем изменения в файл index.html — добавим заголовок <h1>Project-1</h1>

26

Переходим в GitHub Desktop, видим что index.html был изменен, вводим название нового коммитаadd h1 и нажимаем “Commit to main”

27

И снова передаем изменения в репозиторий на GitHub — нажимаем “Push origin”

28

Видим, что index.html был изменен при коммите add h1

29

Нажав на название файла index.html, убеждаемся что заголовок добавлен

30

На данный момент умеем создать репозиторий, делать коммиты, и передавать на GitHub

Далее рассмотрим работу с GitHub Desktop с нескольких рабочих мест

Клонирование репозитория

Предположим, мы работаем с проектом дома на компьютере и в офисе на ноутбуке. Чтобы на ноутбуке у нас была актуальная версия проекта, мы должны получить ее из репозитория на GitHub — это действие называется “клонирование”.

Создадим теперь на ноутбуке папку для репозиториев, например notebook projects

Устанавливаем на ноутбук GitHub Desktop, заходим под своим аккаунтом. Нажимаем File > Clone Repository

В списке выбираем необходимый репозиторий

В пункте Local path, нажимаем кнопку “Choose…“ и выбираем созданную папку notebook projects. Далее нажимаем “Clone…“

31

Репозиторий клонирован (скопирован) в папку Project-1.

33

Если в GitHub Desktop посмотреть вкладку History, то увидим всю историю коммитов

32

Внесем изменения в index.html на ноутбуке, добавим <p>Add text from Notebook</p> и сделаем коммит c названием add text from notebook, далее нажимаем “Commit to main”

34

Отправим коммит в репозиторий на GitHub — нажимаем “Push origin”

35

Коммит виден в репозитории на GitHub

36

В index.html добавлен <p>Add text from Notebook</p>

37

Теперь возвращаемся из офиса домой, открываем GitHub Desktop на компьютере, и чтобы получить изменения, сделанные на ноутбуке, нажимаем “Fetch origin” — проверяем, есть ли отличия локального репозитория на компьютере и репозитория на GitHub

38

Отличия есть, поэтому далее нажимаем “Pull origin”

39

И получаем актуальный проект со всеми изменениями

40


Преимущества

Мы рассмотрели только базовое использование Git, GitHub, GitHub Desktop, но уже можем выделить достаточно много преимуществ (на самом деле их намного больше, как и возможностей)

  1. Возможность фиксировать состояния проекта на необходимых этапах, и иметь доступ к ранним версиям
  2. Умение пользоваться Git очень часто встречается в вакансиях — будет вашим преимуществом
  3. На любом устройстве, в любой момент можете получить доступ до актуального проекта
  4. Возможность делиться своим проектом с другими пользователями GitHub
  5. Иметь проекты на GitHub большой плюс при поиске работы
  6. Возможность пользоваться всеми преимуществами Git без командной строки

Итоги

Возможно, на первый взгляд, покажется сложным, но после небольшой практики, вся базовая работа с GitHub Desktop на начальном этапе сойдется к тому, что вы поработали с проектом на работе > сделали коммит (“Commit to main”) > отправили на GitHub (“Push origin”). Пришли домой > получили изменения из GitHub (“Pull origin”) и продолжаете работу дома.

  1. “Commit to main”
  2. “Push origin”
  3. “Pull origin”

Возможно, через некоторое время напишу статью про другие возможности GitHub Desktop

Больше информации на официальном сайте GitHub Desktop

Самая короткая инструкция о том, как сохранить файлы в GitHub и ничего не сломать. И самое главное — никакой консоли, всё через окошки и с помощью мышки. Для этого используем GitHub Desktop.

Внимание! GitHub Desktop не работает на Windows 7×32, поэтому если у вас эта версия системы, обновитесь до Windows 10 или воспользуйтесь программой GitKraken.

В этой статье идёт рассказ о системах контроля версий. Если вы совсем ничего о них не знаете, прочитайте статьи «Словарь терминов для Git и GitHub» и «Введение в системы контроля версий», чтобы понять терминологию и разобраться, зачем мы вообще это делаем.

Регистрация и вход

После первого входа в GitHub Desktop вас попросят ввести ваши логин и пароль от GitHub.com. После этого у вас появится доступ ко всем репозиториям, сохранённым в профиле.

Создание репозитория

Если вы никогда не пользовались гитхабом, нужно будет создать репозиторий для работы над проектом. На главном экране GitHub Desktop выберите пункт «Create a New Repository on your hard drive».

Нужно будет ввести название репозитория, его описание и выбрать папку на компьютере, куда будут сохраняться файлы.

После этого нажимаем на Create repository, ждём несколько секунд и готово — на компьютере появилась папка, которой можно пользоваться для разработки вашего проекта.

Клонирование репозитория

Если у вас уже какой-нибудь репозиторий на Гитхабе, его можно клонировать. Клонировать — это скачать все файлы к себе на компьютер, чтобы можно было их изменять и потом загружать обратно.

Выбираем Add -> Clone Repository…

В открывшемся окне выбираем один из имеющихся репозиториев. В данном случае он называется zaverstai, но у вас может быть любой другой.

После этого файлы репозитория начнут скачиваться — если их много, то это займет некоторое время.

Работа с репозиторием. Меняем файлы и сохраняем обратно

Вне зависимости от того, создали вы репозиторий или клонировали его, так выглядит GitHub Desktop с открытым репозиторием, в котором мы пока ничего не меняли.

Слева — поле для измененных файлов, справа — служебная информация. Слева снизу — поле для коммитов.

Если не усложнять, то склонированный репозиторий это просто каталог на компьютере. Можно нажать Show in Finder на Mac или Show in Explorer в Windows и откроется папка, где лежат все файлы, которые есть в репозитории.

Давайте добавим какой-нибудь файл. Например, я добавил в локальный репозиторий (скопировал в папку) файл index.html, который взял отсюда. Вы можете загрузить файл с кодом вашего проекта или изменить уже существующий.

Сразу после добавления или изменения файла в окне GitHub Desktop будет видно, что изменилось — если мы добавили целый новый файл, то все строчки будут с плюсиками и зелёные. Это значит, что они были добавлены в файл и GitHub Desktop раньше их никогда не видел.

Загружаем новый репозиторий на GitHub

Если вы не создавали новый репозиторий, а склонировали старый, то можете пропустить этот пункт.

После того, как мы добавили какой-то код в свежесозданный репозиторий, нужно сделать коммит, то есть зафиксировать все сохранённые изменения и дать им название. Текст должен быть лаконичным и в то же время сообщать о том, что делает коммит. Например, «добавляет имя наставника в Readme», «вводит функцию сортировки изображений», «правит ошибку в поиске городов на карте». Вводим имя жмём большую синюю кнопку «Commit to main»

Изменения, которые мы внесли и сохранили, пока локальны. Их нужно послать на GitHub. Чтобы опубликовать свежесозданный репозиторий на GitHub, нажмите Publish repository.

Появится подтверждение о публикации репозитория — проверяем название и описание, если нужно, ставим галочку о том, что код приватный, и публикуем.

Готово — после этого репозиторий появится в вашем профиле на GitHub. com.

Добавляем код и коммитим изменения

Репозиторий создан и загружен на GitHub, теперь нужно добавить немного кода.

Когда вы допишете код в файлы, которые находятся в репозитории, вы сможете просмотреть все их изменения в окне GitHub Desktop. Вот здесь, например, мы изменили «второй» на «третий» в тексте страницы — и изменения сразу видны, можно проверить, что всё исправленное будет загружено.

Дальше действуем по проверенной схеме — коммитим изменения.

В центре главного экрана появится предложение запушить коммит в удалённый репозиторий. Соглашаемся и жмём Push origin.

Готово! Теперь, если зайти на GitHub.com, в наш репозиторий, увидим изменённый файл, который мы только что отправили.

Всё получилось — теперь вы можете создать или склонировать репозиторий, добавить туда файлы, опубликовать всё это на GitHub.com, не прикасаясь к консоли.

Мы поработали только с основной веткой репозитория. Если вы хотите разобраться, как создавать новые ветки и добавлять их в основную ветку, прочитайте статью «Работа с git через консоль».


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

  • Работа с динамическими дисками windows
  • Работа с git в командной строке windows
  • Работа с графикой в windows
  • Работа с docker на windows 10
  • Работа с блокнотом windows 10