Github как создать репозиторий
Перейти к содержимому

Github как создать репозиторий

  • автор:

GitHub и Git — создание и работа с репозиторием

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

Вот такие получаются шаги, которые нужно осветить. Profit у всех этих сложностей, описанных мною выше, один — но большой! Заключается он в том, что проект, над которым вы работаете (даже в гордом одиночестве) находится на удаленном сервере, к которому можно подключиться из любого места и с любой машины. Так как он находиться на remote server, то с ним ничего не случиться, даже если ваша машина упадет\утонет\разобьется.

В статье большая часть времени будет посвящена автоматизации процесса авторизации на сервисе GitHub с помощью такой вещи, как ssh-ключи. Такие ключи предназначены как раз для возможности авторизации пользователя на каком-либо сервисе, без необходимости каждый раз вводить логин\пароль. Естественно, на стороне сервиса должна быть настроена такая возможность — на GitHub она настроена и даже является почти обязательным условием настройки аккаунта.

Все действия, описанные в этой статье, будут производиться под операционной системой Linux Mint 17 Cinnamon, в консоли. Поэтому пользователи Mac OS X найдут для себя почти все идентичным. Система Windows остается в стороне.

Создание SSH-ключей под Linux

Первоначально необходимо создать (если их еще нет) ssh-ключи, которые будем использоваться для авторизации на GitHub. В системе Linux такие ключи расположены в домашней директории пользователя и выглядят примерно так:

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

Если показанная выше команда “скажет” вам, что директории не существует, то это означает, что у вас с системе установлен пакет SSH, отвечающий за создание и обработку ssh-ключей.

Установка пакета SSH

Под Linux Mint его нужно установить командой:

Создание пары ssh-ключей

Теперь можно приступать к созданию пары ssh-ключей. Выполняется это командой:

Чтобы было немного понятно, что это я сделал в данной команде, немного расшифрую ее. Утилита входит в комплект пакета и предназначена для одной цели — создания ssh-ключей. Часть команды — — указывает, что необходимо создать ssh-ключи типа .

Обязательный параметр — электронный адрес, к которому “привязывается” создаваемый ssh-ключ; данный email будет также использоваться мною для регистрации на GitHub.

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

Утилита задаст еще один вопрос, который крайне не рекомендуется игнорировать:

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

После успешного ввода ssh-ключи будут созданы:

В состав пакета входит утилита , задача которой в управлении созданными ssh-ключами. Передадим ей в пользование только созданные мною ssh-ключи:

Можно посмотреть, что утилита “подхватила” и распознала предоставленные ею ssh-ключи:

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

… а затем передам ей на вход содержимое публичного ключа , который буду применять на сервисе GitHub:

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

Добавление ssh-ключа на GitHub

Переходим на сервис GitHub и создаем на нем новую учетную запись. Описывать процесс создания такой записи на GitHub не буду, так как там все просто. Более интересный момент — это добавление ssh-ключа в профиль пользователя GitHub.

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

SSH ключи на GitHub

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

В поле просто нажимаем Ctrl+V — содержимое буфера обмена (которое я получил ранее с помощью утилиты ) вставиться в это поле:

Добавление ssh-ключа на GitHub

Жму на зеленую кнопку внизу окна. Ключ добавлен на GitHub и появиться в списке SSH-ключей:

Добавленный на GitHub ssh-ключ

Проверка SSH-соединения с GitHub

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

Для этой цели ввожу команду:

На ошибку в строке не стоит обращать внимание. В запросе командной строки печатаем и получаем:

Отлично! GitHub “узнал” меня и поприветствовал в строке . Это говорит о том, что ssh-соединение моей машины с GitHub установлено успешно и GitHub авторизует меня.

Однако, при настройке ssh-соединения возможны и ошибки. В этом случае может помочь статья — Error: Permission denied (publickey).

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

Создаем новый репозиторий на GitHub. Ввожу новое уникальное имя для репозитория, краткое его описание и включаю галочку “Initialize this repository with a README”:

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

Отлично! На GitHub я только что создал новый репозиторий . Теперь можно скопировать (склонировать) его на свою локальную машину командами:

Переходим в локальную копию репозитория . Вношу изменения, а затем последовательно:

Команда фиксирует изменения в локальном репозитории. Команда отправляет внесенные и зафиксированные изменения в локальном репозитории на удаленный репозиторий.

Вот, таким образом я наладил Git-работу своей машины с GitHub.

Красивая функция trackBy

Пример красивой функции trackBy для Angular. Функция понравилась своей лаконичностью:<% highlight typescript %>public trackByNumber = (_. … Continue reading

Create a repo

To put your project up on GitHub, you will need to create a repository for it to live in.

В репозиториях GitHub можно хранить различные проекты, в том числе с открытым кодом. Проекты с открытым кодом позволяют предоставлять общий доступ к коду, чтобы создавать более качественное и надежное программное обеспечение. С помощью репозиториев можно вести совместную работу с другими пользователями и отслеживать ее. Дополнительные сведения см. в разделе About repositories. Дополнительные сведения о проектах с открытым кодом см. на сайте OpenSource.org.

Примечания.

  • Для проекта с открытым кодом можно создать общедоступные репозитории. При создании общедоступного репозитория обязательно включите файл лицензии, определяющий способ совместного использования проекта с другими пользователями. Дополнительные сведения о продуктах с открытым кодом, особенно о создании и развитии проекта с открытым кодом, мы создали руководства по продуктам с открытым кодом, которые помогут создать работоспособный открытый код сообщества, формируя практические рекомендации по созданию и обслуживанию репозиториев для проекта с открытым кодом.
  • Вы также можете пройти бесплатный курс GitHub Skills по поддержанию сообществ разработчиков продуктов с открытым кодом.
  • Вы также можете добавить файлы работоспособности сообщества в репозитории, настроить рекомендации по участию, сохранить репозитории в безопасносном месте и многое другое. Дополнительные сведения см. в разделе Creating a default community health file.
  1. В правом верхнем углу любой страницы откройте раскрывающееся меню

и выберите Новый репозиторий.

Раскрывающийся список с параметром создания нового репозитория

Поле для ввода имени репозитория

Поле для ввода описания репозитория

1. Настройте видимость репозитория. Дополнительные сведения см. в разделе About repositories.

Переключатели для настройки видимости репозитория

1. Выберите Initialize this repository with a README (Инициализировать репозиторий с помощью файла сведений).

Инициализировать репозиторий с помощью флажка README

1. Щелкните Создать репозиторий.

Поздравляем! Вы успешно создали первый репозиторий и инициализировали его с помощью файла сведений.

Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

  1. В командной строке перейдите в каталог, в котором нужно создать локальный клон нового проекта.
  2. Чтобы создать репозиторий для проекта, используйте подкоманду gh repo create . При появлении запроса выберите Создать репозиторий на GitHub с нуля и введите имя нового проекта. Если вы хотите, чтобы проект принадлежал организации, а не вашей личной учетной записи, укажите имя организации и имя проекта с помощью organization-name/project-name .
  3. Следуйте интерактивным инструкциям. Чтобы клонировать репозиторий локально, при получении запроса подтвердите клонирование удаленного каталога проекта.
  4. Можно также пропустить запросы, указав имя репозитория и флаг видимости ( —public , —private или —internal ). Например, gh repo create project-name —public . Чтобы клонировать репозиторий локально, передайте флаг —clone . Дополнительные сведения о возможных аргументах см. в руководстве по GitHub CLI.

Фиксация первого изменения

Фиксация похожа на моментальный снимок всех файлов проекта на определенный момент времени.

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

Давайте зафиксируем изменение в файле сведений.

    В списке файлов репозитория щелкните файл README.md.

Файл сведений в списке файлов

Новое содержимое в файле

1. Над новым содержимым щелкните элемент Просмотреть изменения.

Кнопка "Предварительный просмотр файла"

Представление предварительного просмотра файла

1. В нижней части страницы введите короткое понятное сообщение о фиксации, описывающее внесенное в файл изменение. В таком сообщении фиксацию можно отнести к нескольким авторам. Дополнительные сведения см. в разделе Creating a commit with multiple authors.

Сообщение о фиксации для изменения

1. Под полями сообщения о фиксации укажите, куда следует добавить фиксацию: в текущую ветвь или в новую. Если текущей ветвью является ветвь по умолчанию, нужно создать новую ветвь для фиксации, а затем создать запрос на вытягивание. Дополнительные сведения см. в разделе Creating a pull request.

Параметры фиксации ветви

1. Щелкните Предложить изменение файла.

Кнопка "Предложить изменение файла"

Теперь, когда проект создан, можно начать фиксацию изменений.

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

В командной строке перейдите в корневой каталог нового проекта. (Этот каталог был создан при выполнении команды gh repo create .)

Создайте файл сведений со сведениями о проекте.

Введите git status . Вы увидите, что есть неотслеживаемый файл README.md .

Подготовьте и зафиксируйте файл.

Отправьте изменения в свою ветвь.

Теперь вы создали репозиторий, включая файл сведений , и создали первую фиксацию в GitHub.com.

  • Теперь можно клонировать репозиторий GitHub, чтобы создать локальную копию на своем компьютере. В локальном репозитории можно выполнять фиксации и создавать запросы на вытягивание, чтобы передавать изменения в вышестоящий репозиторий. Дополнительные сведения см. в разделах Cloning a repository и Set up Git.

На GitHub можно найти интересные проекты и репозитории, в которые можно внести изменения, создав вилку репозитория. Создание вилки репозитория позволит вносить изменения в другой репозиторий, не затрагивая исходный. Дополнительные сведения см. в разделе Fork a repo.

Каждый репозиторий на GitHub принадлежит пользователю или организации. Вы можете взаимодействовать с людьми, репозиториями и организациями, подписавшись на них на GitHub. Дополнительные сведения см. в разделе Be social.

У GitHub большое сообщество поддержки, где можно обратиться за помощью и поговорить с людьми со всего мира. Присоединиться к беседе можно в GitHub Community.

Github как создать репозиторий

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

Настраиваем доступ по токену

Когда вы зарегистрировались и зашли в аккаунт, стоит настроить доступ по токену. Это важная мера безопасности. Даже если ваш пароль кто-то украдет, зайти в аккаунт он не сможет. Токен — более продвинутый метод защиты, чем пароль. Аутентификация по токену генерирует входные данные отдельно для каждого устройства и сеанса. У токенов можно менять права доступа или отзывать их. Подобрать токен перебором невозможно.

Переходим в меню под фото профиля. Settings → Developer settings → Personal access tokens → Create new token.

Разные токены нужны для разных доступов, чтобы не запутаться, давайте дадим нашему токену название tutorial. В настройках для начала достаточно поставить галочку рядом с repo. Создаем токен. Получившийся токен нужно обязательно сохранить в какой-то надежный файл, а лучше в менеджер паролей.

Откроем терминал по адресу нашего проекта. На mac нужно выбрать «новый терминал по адресу папки». На Windows будет вариант «GitBush here».

Чтобы настроить доступ по токену, воспользуемся уже известной утилитой git config: git config —global user.name <username, который задавали при регистрации>

Теперь вводим токен: git config —global user.password <ваш токен>

Устанавливаем двухфакторную аутентификацию

Вторая важная настройка безопасности — двухфакторная аутентификация. Settings → Password and Autentication → Enable Two-Factor Authentication.

В качестве второго фактора лучше использовать не SMS, а приложение, например Google Аuthenticator. Его нужно скачать на телефон, нажать на плюс, чтобы добавить новый код, затем отсканировать qr-код, который появится на сайте, и ввести сгенерированный шестизначный код. После этого нужно скачать коды восстановления и сохранить их в надежное место.

Создаем репозиторий на GitHub

Можем создать первый удаленный репозиторий. Нажимаем на + в правом верхнем углу, выбираем New repository.

Задаем имя репозитория, например, git_tutorial.

Можем добавить описание: «Учимся работать с удаленным репозиторием».

GitHub предлагает нам сразу создать два базовых файла README.md и .gitignore. Но у нас уже есть локальный репозиторий, с которым мы начали работать, добавим эти файлы в него. А на этом шаге просто нажимаем create repository.

Файлы README и gitignore

Файл README.md — это текстовый файл, в котором на языке markdown можно добавить описание проекта. Файл README необязателен, но помогает лучше ориентироваться в своих и чужих репозиториях. Давайте его добавим в нашу папку с проектом. Напишем заголовок «Тестовый репозиторий» и описание: «Это тестовый репозиторий, в котором я учусь работать с git».

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

В проекте появился новый файл. Вернемся в терминал и добавим его в отслеживание: git add README.md

Закоммитим: git commit -m “Add README”

Файл .gitignore нужен, чтобы прописать те файлы, которые мы не хотим отслеживать. Это могут быть конфигурационные или временные файлы, которые автоматически создаются по ходу работы. Учесть все ненужные файлы, которые могут появиться, и самостоятельно создать gitignore-документ сложно. Поэтому можно использовать шаблоны, а потом уже дополнять их самостоятельно по ходу работы. Мы программируем на python, поэтому для примера я нашла gitignore для python. Создадим файл .gitignore в нашей папке и скопируем в него названия файлов.

Добавим новый файл в отслеживание и закоммитим изменения.

git add .gitignore

git commit -m “Add gitignore”

Проверим git status. Все закоммичено.

Теперь в репозитории есть все нужные файлы, можем добавить его на GitHub. GitHub можно использовать как обычное хранилище и загружать почти любые файлы. Для этого нужно нажать «загрузка нового файла» и выбрать, что мы хотим загрузить.

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

Просматриваем историю изменений

Вернемся в терминал. Вспомним, какие изменения мы уже локально коммитили на прошлом уроке. Посмотреть все коммиты можно с помощью команды git log. Сейчас мы видим все коммиты.

У каждого коммита есть уникальный идентификатор — набор цифр и букв. Мы видим кто и когда сделал каждый коммит, какое сообщение он написал. Подробнее посмотреть информацию о конкретном коммите можно с помощью команды: git show <5 первых символов идентификатора>

В таком режиме мы видим, какие изменения были внесены.

Зеленые плюсы — какие строки добавились, красные минусы — какие удалились.

Чтобы выйти из log, нужно нажать q в английской раскладке.

Еще раз посмотрим всю историю: git log. Наши изменения лежат в ветке master (на Windows будет ветка main), подробнее про ветки мы еще будем говорить на следующем занятии. Сейчас достаточно знать, что это основная ветка. Но на GitHub основная ветка называется main.

Чтобы не возникало проблем при сохранении проекта на сервере, переименуем нашу локальную ветку: git branch -m master main. (Для Windows это делать не нужно)

Проверим историю: git log. Видим, что ветка переименовалась.

Передаем репозиторий на сервер

Передадим наш репозиторий на сервер. Связаться с удаленным репозиторием можно по ссылке. Откроем репозиторий на GitHub и скопируем ссылку.

В открытом терминале пишем команду:

git remote add origin <ссылка на репозиторий>

(Чтобы вставить скопированную ссылку в терминал на Windows, нужно зажать ctrl и нажать левой кнопкой мыши или тачпада.)

Origin — это имя удаленного репозитория, которое мы будем дальше использовать вместо ссылки. Проверим, подключился ли репозиторий. Команда git remote -v показывает, какие удаленные репозитории присоединены. Мы видим присоединенный репозиторий.

Теперь можем отправить на него наш локальный репозиторий: git push -u origin main

Creating a new repository

You can create a new repository on your personal account or any organization where you have sufficient permissions.

Совет. Владельцы могут ограничивать разрешения на создание репозиториев в организации. Дополнительные сведения см. в разделе Restricting repository creation in your organization.

Совет. Репозиторий легко можно создать, используя GitHub CLI. Дополнительные сведения см. в разделе gh repo create в документации по GitHub CLI.

  1. В правом верхнем углу любой страницы откройте раскрывающееся меню

и выберите Новый репозиторий.

Раскрывающийся список с параметром создания нового репозитория

Раскрывающееся меню шаблонов

Флажок "Включить все ветви"

Раскрывающееся меню "Владелец"

1. Введите имя репозитория и необязательное описание.

Поле создания репозитория

1. Настройте видимость репозитория. Дополнительные сведения см. в разделе About repositories.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *