на гитхабе код открыт тыща строк как этот бит
Github — без командной строки
Иногда, исследуя чужие репозитории на github, замечаешь ошибки, неточности или же понимаешь, что мог бы добавить что-нибудь полезное, но, кого-то необходимость выполнять кучу действий в командной строке может отпугнуть, кому-то она в данный момент не доступна, и мы проходим мимо.
Многие опытные пользователи github-а знают, что отнюдь не для всего обязательно нужно использовать командную строку. Все это так.
Здесь я собрал несколько рецептов, используя которые, вы сможете без единой команды git, скопировать себе репозиторий, создать там вспомогательную ветку, в ней что-то отредактировать, добавить/удалить файлы/папки, сделать пулл-реквест в оригинальный репозиторий. А по истечению какого-то времени, когда в оригинальном репозитории накопятся изменения не отраженные в нашей копии — синхронизировать эти два репозитория — причем тоже без единой git-команды.
Думаю с созданием форка (копированием репозитория к себе) — все легко справятся, поэтому сразу идем дальше.
Создание ветки
Считается признаком хорошего тона, если вы оформите свои правки в отдельной ветке, ведь хозяин оригинального репозитория может попросить вас что-то поменять/доработать перед слиянием.
Создать новую ветку (копированием из текущей) можно прямо в окошке смены ветки. Вводим имя — enter — готово.
Добавление файлов
Создание новых файлов здесь же — далеко ходить не нужно. Жмем «+»
И сразу же переходим в режим редактирования вновь созданного файла:
Здесь можно отредактировать как сам файл, так и его имя. В редактировании имени есть одна интересная особенность — используя ‘/’ и ‘../’ можно перемещаться по дереву каталогов. (в итоге, при создании файла, заодно будут созданы, не существовавшие до этого папки)
Синхронизация форка с основным репозиторием
Часто бывает так, мы делаем форк репозитория, правим там что-то, делаем pull-request. Автор принимает этот pull-request и мы успокаиваемся на некоторое время. Через пару месяцев, мы вновь хотим что-то улучшить, но наша копия уже безнадежно устарела. Здесь требуется синхронизация. Легко можно найти как это сделать, используя командную строку. Намного реже встречается объяснение того, как это сделать непосредственно на github.
P.S.
Я не стал здесь описывать очевидные вещи: как сделать форк, как сделать pull-request — так как они делаются в 1 клик.
А что еще из неочевидного можно делать с репами без использовани командной строки?
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, нужно будет пройти несколько этапов, на которых мы остановимся чуть ниже.
Как зарегистрироваться на GitHub
Во-первых, не нужно путать Git и GitHub — это разные инструменты, делающие одно дело : они контролируют версии программного продукта. Их различие в том, что:
Чтобы зарегистрироваться на GitHub, нужно перейти по адресу github.com. Там необходимо будет пройти простую регистрацию и верифицировать свою электронную почту. Данный ресурс предложит вам 2 вида аккаунтов:
После регистрации и верификации не лишним будет заполнить свой профиль:
Это нужно сделать тем, кто открыт к новым проектам и не прочь поработать. По GitHub «ходят» IT-рекрутеры, которые могут предложить вам поучаствовать в интересных проектах. Но для того чтобы они вас смогли найти, у вас должен быть заполнен профиль.
Как добавить новый репозиторий, чтобы залить код на GitHub
В данном случае репозиторий — это небольшое хранилище, куда вы сможете выложить свой код. Бесплатный тариф дает вам возможность создавать неограниченное количество репозиториев, однако хранилища будет только 500 Мб. Но даже этого места более чем достаточно для старта или для того, чтобы попробовать возможности GitHub.
На этом этапе вы можете сделать свой проект публичным или прив а тным, а также «прикрепить» дополнительную техническую информацию, например:
Если вы не понимаете, что это за техническая информация, то пока можно эту документацию оставить пустой.
Как перенести облачный репозиторий на компьютер
Для того чтобы залить код на GitHub, на этом этапе нужно будет скачать и установить программу GitHub Desktop. Данная программа способна наладить синхронизацию между вашим компьютером и ГитХабом, чтобы вы смогли выложить туда код, не используя Консоль. Скачать эту программу можно по адресу desktop.github.com.
Чтобы все прошло как по маслу, нужно:
Если все сделали правильно, то программа произведет синхронизацию с вашим аккаунтом на GitHub и попроси т выбрать необходимое действие:
Как залить код на GitHub через локальный репозиторий
Заключение
При помощи программы GitHub Desktop можно эффективно управлять своими проектами на ГитХабе, создавая новые репозит о рии, новые ветки в проекте, внося изменения в проект прямо в компьютере и при этом не посещая сам ресурс.
Теперь вы знаете, как залить код на GitHub при помощи программы, которую нужно установить на компьютер. Если не хотите использовать эту программу, можно залить код на ГитХаб прямо в самом аккаунте. Для этого также нужно будет создать новый репозиторий вашего проекта и перенести туда «руками» код вашей программы.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Работа с Git через консоль
Итак, вы получили задание: сделать форк вашего репозитория в GitHub, создать ветку и начать работу.
Когда получил непонятное задание.
Что за GitHub, какие команды, зачем, а главное, как всем этим пользоваться? Давайте разбираться.
Полезные материалы по Git
Система контроля версий Git
Для начала определим, что такое система контроля версий.
Так называют программу, которая позволяет хранить разные версии одного и того же документа, легко переключаться между ранними и поздними вариантами, вносить и отслеживать изменения.
Систем контроля версий много и все они работают по принципу компьютерной игры, где вы можете вернуться к месту сохранения, если что-то пошло не так.
Одна из самых популярных систем называется Git. Её отличие от других программ — отсутствие графической версии. Поэтому работа с Git ведётся через командную строку. В разных операционных системах свои программы для взаимодействия с Git.
В Windows их две: PowerShell и cmd.exe. В Ubuntu это Terminal. Самая популярная программа на macOS тоже называется Terminal. Если вам не подходит встроенная в систему программа для работы с командной строкой, вы можете поставить свою. Например, написанную на JavaScript программу Hyper, которая работает на любой операционной системе. На Windows популярны программы Cmder и Git Bash, а на macOS — iTerm.
В мире разработки такие программы называют «терминал» или «консоль». А работает это так: мы вводим команду и получаем реакцию машины: сообщение об ошибке, запрос на подтверждение информации, результат выполненных действий.
Git — важный навык веб-разработчика
А лучший способ научиться программировать — профессия «React-разработчик». В программе три интенсива, прокачка навыков и оплачиваемая стажировка.
Устанавливаем Git
Если раньше вы не работали с Git, сперва его нужно установить. Способы зависят от операционной системы вашего компьютера.
Установка в Linux
Используйте обычный менеджер пакетов вашего дистрибутива. Откройте терминал и введите подходящие команды.
Полный список команд для различных дистрибутивов можно посмотреть здесь.
Установка на macOS
Установка в Windows
Скачайте exe-файл инсталлятора с сайта Git и запустите его. Это Git для Windows, он называется msysGit. Установщик спросит добавлять ли в меню проводника возможность запуска файлов с помощью Git Bash (консольная версия) и GUI (графическая версия). Подтвердите действие, чтобы далее вести работу через консоль в Git Bash. Остальные пункты можно оставить по умолчанию.
Проверим, что Git установлен
Настройка Git
После того как Git появился на компьютере, нужно ввести свои данные, а именно имя и адрес электронной почты. Ваши действия в Git будут содержать эту информацию.
Регистрация на GitHub
GitHub — веб-сервис, который основан на системе Git. Это такая социальная сеть для разработчиков, которая помогает удобно вести коллективную разработку IT-проектов. Здесь можно публиковать и редактировать свой код, комментировать чужие наработки, следить за новостями других пользователей. Именно в GitHub работаем мы, команда Академии, и студенты интенсивов.
Чтобы начать работу с GitHub, нужно зарегистрироваться на сайте, если вы ещё этого не сделали. За дело.
Теперь у вас есть профиль на GitHub.
Устанавливаем SSH-ключи
Git установлен, профиль на GitHub создан. Осталось добавить SSH-ключ и можно приступать к работе с проектом.
Что такое SSH-ключ и зачем он нужен?
Чтобы работать со своего компьютера с GitHub, иметь доступ к проектам, хранящимся на сервисе, выполнять команды в консоли без постоянного подтверждения пароля, нужно пройти авторизацию у сервера. В этом помогают SSH-ключи.
Каждый SSH-ключ содержит пару: открытый (публичный) и закрытый (приватный) ключ. Открытый ключ отправляется на сервер, его можно не прятать от всех и не переживать, что кто-то его увидит и украдёт. Он бесполезен без своей пары — закрытого ключа. А вот закрытый ключ — секретная часть. Доступ к нему должен быть только у вас.
Вы отправляете какую-то информацию на сервер, где хранится ваш публичный ключ, сервер понимает, что вы это вы, то есть идентифицирует именно вас, и даёт вам какой-то ответ. И только вы можете расшифровать этот ответ, потому что только у вас есть подходящий закрытый ключ. Получается что-то вроде связки логин-пароль только намного безопасней. Ваш пароль кто-то может узнать или подобрать, а чтобы получить ваш приватный SSH-ключ, злоумышленнику придётся взломать ваш компьютер.
Чтобы пройти авторизацию по SSH-ключу, его надо сгенерировать или найти уже ранее созданный ключ на своём компьютере.
Сначала проверим, есть ли уже на компьютере ключ. По умолчанию SSH-ключи хранятся в каталоге
Если проблема осталась, рекомендуем работать в Git Bash.
/.ssh/config файл, чтобы автоматически загрузить ключи в ssh-agent и хранить пароли.
/.ssh права доступа командой chmod 700
Можно пойти другим путём, открыть файл id_rsa.pub прямо в папке и просто скопировать содержимое оттуда.
Нажимаем кнопку New SSH key (новый SSH-ключ). Вводим имя ключа (можно придумать абсолютно любое) в поле Title (название), а в Key (ключ) вставляем сам ключ из буфера обмена. Теперь нажимаем Add SSH key (добавить SSH-ключ).
Добавляем в свой профиль SSH-ключ.
Если всё сделано верно, в списке появится новый ключ.
Успешно добавленный ключ.
Теперь, наконец-то, мы можем начать работу с самим проектом.
Работа с репозиториями
Для начала определим, что такое репозиторий. Это рабочая директория с вашим проектом. По сути, это та же папка с HTML, CSS, JavaScript и прочими файлами, что хранится у вас на компьютере, но находится на сервере GitHub. Поэтому вы можете работать с проектом удалённо на любой машине, не переживая, что какие-то из ваших файлов потеряются — все данные будут в репозитории при условии, что вы их туда отправите. Но об этом позже.
Если над проектом трудится команда разработчиков, как правило, создаётся общий репозиторий, в котором находится рабочая версия проекта (назовём его мастер-репозиторий). При этом каждый пользователь клонирует себе в профиль оригинальный репозиторий и работает именно с копией. Такая копия называется форком. Так как форк — ваша персональная версия мастер-репозитория, в нём вы можете пробовать разные решения, менять код и не бояться что-то сломать в основной версии проекта.
Как сделать форк мастер-репозитория?
Заходим в нужный репозиторий, нажимаем на «вилку» с надписью fork. Форк репозитория создан и находится в вашем профиле на GitHub.
Теперь нужно склонировать форк себе на компьютер, чтобы вести работу с кодом локально. Тут нам и пригодится SSH.
Открываем консоль, переходим в директорию, где хотим сохранить папку с проектом, и вводим команду:
Кстати, если вы хотите, чтобы название папки с проектом у вас на компьютере отличалось от имени репозитория, можете дополнить команду клонирования, добавив в конце другое название:
Теперь, на вашем компьютере, в папке your_project или в той, название которой вы указали самостоятельно, находится полная копия репозитория c GitHub.
Сделали копию репозитория.
Новая ветка.
Эта команда позволяет переключаться между существующими ветками в проекте, после git checkout надо указать название нужной ветки.
Переключаемся между ветками.
После того как вы создали ветку, поработали в ней у себя локально — нужно сохранить результат, чтобы он не пропал и в итоге оказался в репозитории.
Состояние ветки.
Делаем коммит.
Сохранения зафиксированы, всё? Они теперь в репозитории и видны коллегам? Пока нет. Те изменения, которые мы внесли и сохранили, пока локальны. Их нужно послать на GitHub.
Отправляем изменения.
Теперь заходим на страницу нашего форка и создаём пулреквест, чтобы слить свой код с данными в мастер-репозитории. Что такое пулреквест? Это предложение изменить код в репозитории.
Вы исправили код, наставник или техлид одобрил ваши правки и принял пулреквест. Теперь код в мастер-репозитории обновился, а в вашем форке нет, вы ведь не обновляли свою версию репозитория с тех пор, как клонировали её себе на компьютер. Приведём форк в актуальное состояние.
Готово, теперь форк и оригинальный репозиторий находятся в актуальном состоянии.
Отправляем код на GitHub и настраиваем SSH-ключи
Рассмотрим как нам отправить код проекта на GitHub и настроить SSH-ключи для работы с системой контроля версий.
Переходим на сайт github.com и регистрируемся, если вы этого еще не сделали.
Вводим имя пользователя (Username), почту (Email) и пароль (Password). После чего Giyhub спросит про тариф. Выбираем бесплатный. Вы увидите фразу: Unlimited public repositories for free. Это то, что нам нужно.
В конце рассказываем про опыт и всё, регистрация завершена. Этот шаг можно пропустить.
Теперь мы можем опубликовать первый проект. Нажимаем Start a project.
И вводим имя нашего первого проекта и репозиотория:
Дальше нас GitHub спросит про создание файла README для проекта. Мы не будем ставить галочку, т.к. у нас уже есть локальный проект с историей.
Теперь жмем Create Repository (создать репозиторий).
Т.к. у нас уже есть репозиторий локально, то нам нужно обращать внимание на команды в этом блоке: …or push an existing repository from the command line. Мы будем использовать команды из него.
Т.е. мы используем в Cmder команду:
В удаленный репозиторий можно отправлять файлы и получать их из него.
Посмотрим что покажет терминал:
Дальше GitHub нам рекомендовал команду:
Если вы увидели ошибку:
То это, скорее всего, означает, что имя ветки не совпало с указанным в команде. Например в коде выше я ввел:
Хотя моя ветка называлась master.
Далее мы получаем ошибку:
В домашней папке создаем папку .ssh и перейдем в нее:
Теперь генерируем пару ключей командой:
Пару ключей для Github мы генерируем только один раз.
Теперь нас спросят про название ключа, где пишем свое имя, т.к. лучше не использовать стандартное, которое предлагает терминал. После этого нас попросят указать пароль. Здесь мы можем оставить пароль пустым и нажать Enter. И теперь еще раз Enter для подтверждения пароля.
Публичный ключ мы должны загрузить на Github и для этого мы переходим на сайт github.com и далее переходим в Настройки (Settings). В настройках выбираем пункт: SSH and GPG keys.
Жмем New SSH key.
Вводим название (title) и далее нам нужно в поле ключ (key) вставить содержимое ключа, которое мы скопируем из консоли после использования команды cat, и здесь используем публичный ключ. В названии я использую имя компьютера на котором работаю, но можно вводить что угодно.
Выделяем ключ (весь текст от слова ssh-. вместе с email), копируем его в Github и далее жмем Add SSH key:
Теперь нужно проверить, что github нас узнает (указываем приватный ключ):
Github с нами поздоровается:
Проверка связи с сайтом без приватного ключа приведет к ошибке:
Чтобы при соединении с GitHub всегда использовался нужный ключ мы должны в настройках SSH указать этот ключ. Настройки SSH хранятся в папке .ssh и в файле config локального домашнего пользователя. Добавляем информацию об использовании для хоста github.com определенный ключ:
Обратите внимание на отступ во второй строке и что используется приватный ключ:
Теперь заново пробуем соединиться с гитхабом:
Теперь всё получилось:
Теперь мы можем вернуться в репозиторий и отправить изменения на GitHub:
Если перейти на Гитхаб и посмотреть репозиторий, то мы увидим все файлы, которые были отправлены из локального репозитория.