Как сделать репозиторий приватным github

Добавил пользователь Skiper
Обновлено: 05.10.2024

План урока

Что такое распределённый репозиторий

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

Распределённый репозиторий решает очень много задач:

  1. Надёжность: ваш код всегда храниться на удалённых серверах. Если с вашим компьютером что-то случиться, вы просто скачаете код заново.
  2. Удобство: вы можете клонировать ваш код на все ваши компьютеры. На работе, дома. Можете даже смотреть код с планшета или мобильного устройства, если вам это вдруг понадобится.
  3. Распределённость: если над программой работает целая команда программистов, то каждый из них работает со своей версией кода, а потом они могут легко объединить их.
  4. Версионность: любой, кому вы дадите доступ, сможет скачать нужную ему версию вашей программы, если вдруг по какой-то причине его железо или ОС не совместима с последней.
  5. Открытый код (OpenSourse): если вы сделаете ваш проект открытым, другие разработчики смогут смотреть, что вы написали и помогать вам в разработке, если ваша программа окажется для них полезной. Вы также сможете показать исходный код ваших программ потенциальным работодателям.

Как устроен распределённый репозиторий

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

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

Схема работы разработчиков с удалённым репозиторием

Исходный код фреймворка rails на github.com

Мы неоднократно бывали на похожих страницах других проектов и библиотек в базовом блоке нашего курса.

Создание аккаунта на github-е

Для того, чтобы пользоваться сервисом github необходимо создать там аккаунт. Пока выбирайте бесплатный тариф. Нам он вполне подойдёт. Интерфейс github-а часто меняется, поэтому мы не приводим тут снимков экрана, чтобы вас не запутать.

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

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

Что такое SSH

Некоторые сервера (такие, например, как github), поддерживают авторизацию по SSH. Это как ключ от подъезда: специальный файлик, который играет роль пароля, но зашифрованного, передаваемый каждый раз при входе на сервер.

Авторизация по SSH позволяет ускорить вход на сервер, ведь в современном мире все сервера постоянно общаются между собой. За рабочий день программист может заходить на github сотни раз. Не вводить же ему пароль каждый раз. Для этого используются SSH-ключи.

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

Генерация SSH-ключа

На github-е есть страничка, посвящённая генерации ключа, но мы, на всякий случай, приведём основные шаги здесь.

Откройте консоль git-а (в прошлом уроке мы добавили при установке её иконку на рабочий стол) и выполните команду

Программа спросит вас, где создать пару файлов ключа. По умолчанию ключ создаётся в домашней директории в папке .ssh . Нас это устраивает: просто нажмите Enter . А потом программа попросит нас ввести ключевую фразу для ключа: это по сути микропароль, который вы будете вводить каждый раз при использовании ключа. Рекомендуем вам пока оставить это поле пустым: просто ещё раз нажмите Enter .

Вуаля! Мы сгенерили ключ. Его публичная часть лежит по адесу C:\users\ \.ssh\id_rsa.pub .

Откройте этот файл в любом текстовом редакторе (например, в нашем любимом Sublime) и скопируйте его содержимое.

Найдите на github раздел для добавления ключей и создайте новый ключ: вставьте в поле key то, что вы скопировали в файле id_rsa.pub и нажмите Add Key

Добавляем ssh-ключи на github

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

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

Давайте теперь создадим новый репозиторий в папке урока rubytut2/lesson3 и добавим его в наш github аккаунт. Напишем программу, которая выбирает из колоды 52 карт произвольную.

Начнём с того, что создадим на github-е новый репозиторий. Самое главное для нас, как он будет называться: назовём его pick_a_card.

git remote

Давайте учиться привязывать удалённые репозитории к локальным. Для этого, как мы это делали в первом уроке, создадим локальный репозиторий:

Откроем проект pick_a_card в RubyMine и создадим файл .gitignore и добавим туда строчку

После этого напишем нашу программу в файле pick_a_card.rb :

Добавим файлы .gitignore и pick_a_card.rb в репозиторий (можно добавлять файлы с помощью git add , указывая их через пробел) и сделаем первый комит:

Пришло время привязать наш удалённый репозиторий к локальному. Это делается с помощью команды git remote . Вам необходимо указать название удалённого репозитория. Обычно, он называется origin и мы именно так и советуем его вам назвать.

Посмотреть все удалённые репозитории, привязанные к текущему можно с помощью команды

git push

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

Для синхронизации изменений в git-е есть две команды: git pull и git push .

Перед синхронизацией ещё один нюанс: git синхронизирует ветки (что это такое — читайте в доп. материалах). Мы уже затрагивали понятие ветки master — главной ветки нашего локального репозитория. Удалённый репозиторий ничем не хуже. У него тоже есть свой master .

Именно с ним мы и будем синхронизировать нашу локальную ветку master .

Всё, мы, наконец, синхронизировали на код с удалённым репозиторием. Можно зайти на github и посмотреть на наш проект:

Наш первый удалённый репозиторий!

git pull

Теперь, чтобы получить этот файл в локальном репозитории, наберите команду

RubyMine увидит файл README.txt в вашем проекте. Вы также можете убедиться, что комит на месте с помощью команды git log .

Вот с помощью этих двух команд ( git pull и git push ) и происходит обычно процесс работы с вашим удалённым репозиторием. Вы добавляете какие-то изменения, делаете комит ( git commit ), потом смотрите, не появилось ли чего нового в удалённом репозитории ( git pull ), и загружаете ваши комиты на удалённый сервер ( git push ).

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

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

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

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


  • GitHub Free теперь включает в себя неограниченные приватные репозитории. Впервые разработчики могут использовать GitHub для своих проектов, добавляя до трех соавторов в репозиторий бесплатно. Многие разработчики хотят использовать приватные репозитории для того, чтобы работать над сторонними проектами или пробовать что-то приватно, прежде чем публиковать публично. Начиная с сегодняшнего дня, эти и многие другие сценарии возможны на GitHub бесплатно. Общедоступные репозитории остаются бесплатными и включают неограниченное количество соавторов.
  • GitHub Enterprise — это новый унифицированный продукт для Enterprise Cloud (ранее GitHub Business Cloud) и Enterprise Server (ранее GitHub Enterprise). Организации, которым нужна гибкость в использовании GitHub в облачной или автономной конфигурации, теперь могут получить доступ к обоим по одной цене. А благодаря GitHub Connect эти продукты могут быть надежно связаны между собой, предоставляя гибридный вариант, позволяющий разработчикам без проблем работать в любой среде.

GitHub Pro (ранее GitHub Developer) и GitHub Team также доступны для разработчиков и команд, которым необходимы профессиональные возможности кодинга и совместной работы. И, конечно же, проекты с открытым исходным кодом будут иметь все необходимое для совместной работы над общедоступными репозиториями, включая нашу бесплатную версию GitHub Team.

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

Какие инструменты входят в комплект?

Их много, поэтому мы перечислим самое интересное.

AWS Educate — бесплатный доступ к хостингу и тренингам от Amazon;
Bitnami — популярный инструмент для деплоя;
DigitalOcean — бесплатный хостинг в облаке;
GitHub — организации, приватные репозитории;
GitKraken — GitKraken бесплатный доступ к элитному клиенту Git для Windows, Mac и Linux;
Microsoft Azure — бесплатный хостинг и Visual Studio;
Namechep — бесплатный домен в зоне .me на 1 год, SSL сертификат;
Stripe — биллинг;
Travis CI — приватные билды;
Udacity — известный сервис в сфере онлайн-образования;
UnrealEngine — бесплатный доступ к движку и инструментам разработки.

Полный список вы можете найти на официальном сайте GitHub Education.

Кто может их получить?

Любой школьник или студент по всему миру, включая Россию и страны СНГ. Единственное условие — вы должны быть старше 13 лет и иметь либо почту на официальном домене университета, либо студенческий / ученический билет на русском или на языке вашей страны.

На первом шаге вам предложат выбрать ваш статус: учитель, ученик и т.д.

На втором шаге вам нужно будет ввести свои персональные данные и выбрать один из способов верификации. Если у вас есть выданный учебным заведением e-mail, то тут всё очевидно. Если нет, то вам предложат загрузить фотографию документа, подтверждающего то, что вы являетесь студентом/школьником. Как писалось выше, подойдет обычная фотография ученического/студенческого билета.

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

Вот сопроводительное письмо, которое отправил автор этой статьи:

Hello, my name is Taras and I’m a student, who wants to be a perfect developer.

I have been using GitHub for over 2 years now, but most of my Open Source projects were committed in past 3-4 month. Some of my repositories are with stars and a little bit popular, at least as for my growing level.

I need a private repository on GitHub to make a project with my friend: we want to build a tool that will work on VK API and Laravel. We plan to publish results of our work soon: for example, there is still no SDK for VK API that supports queue.

Thanks for all you done,
Taras.

Конечно, не стоит копировать его без изменений.

Как скоро придет ответ?


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

1- Создание Repository

На github.com, войдите в свою учетную запись. Вы можете увидеть кнопку "Create repository" прямо на главной странице GitHub.


Назовите свой Repository и сделайте его Public или Private. Публичный (Public) repository позволит всем другим пользователям GitHub просматривать или clone (клонировать) ваш repository для создания своего собственного repository, в то время как приватный (Private) repository будет скрыт от всех обычных пользователей и будет использоваться только вами и вашей командой разработчиков.

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


Выберите пункт меню Developer settings.


Кликните на опцию Personal access tokens.

Нажмите на кнопку generate new token, затем скопируйте и сохраните его для дальнейшего использования.

Создание секретных ключей

Откройте настройки нашего проекта и нажмите на раздел Secrets. В моем случае у меня уже есть следующие секретные ключи:


URL репозитория по API

Для загрузки последних изменений из приватного репозитория мы будем использовать GitHub API вместе с нашим ранее сгенерированным и настроенным токеном, выглядит это следующим образом:

Читайте также: