Как сделать проект публичным gitlab

Обновлено: 05.07.2024

В этом гайде покажу как создать ключ, загрузить на сервер и перенастроить локальный репозиторий на SSH доступ. В качестве примера используется Windows 10 и GitBash.

Что необходимо

  • Gitbash или установленный git для Linux и macOS.
  • Репозиторий на GitHub.

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

SSH (Secure SHell) - это протокол, который позволяет безопасно авторизоваться в различные сервисы, подключаться к удаленным терминалам, передавать по шифрованным каналам информацию. Очень распрастранен при работе с репозиториями. Использует пару ключей - публичный и приватный.

Открывайте GitBash или терминал, вводите:

💡 Если у вас будет ошибка: No such file or directory - создайте папку, выполнив команду:

После заходите в папку.

Для генерации ключа используется программа ssh-keygen , она обычно установлена, в Windows встроена в GitBash.

Github рекомендует использовать ключ типа ed25519, так как этот алгоритм на данный момент самый безопасный, с коротким открытым ключом (68 символов, против 544 у RSA) и что важно - быстро работает. За тип ключа отвечает параметр -t .

Длина ключа рекомендуется 4096 бит, при создании это параметр -b .

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

В итоге для запуска генерации ключа, выполните:

Вам будут заданы несколько вопросов:

Куда сохранить файл ( Enter file in which to save. ) - нажмите Enter и по умолчанию ключ будет назван id_ed25519 и сохранится в .ssh папке профиля текущего пользователя. (в Windows папки пользователя в C:/Users, в macOs/Linux папка пользователя в /home)

Введите кодовую фразу ( Enter passphrase. ) - опционально, кодовая фраза это элемент безопасности. Если ваш приватный ключ попадет в чужие руки, им не смогут воспользоваться пока не подберут кодовую фразу. Это даст вам больше времени для замены ключей и отказа от скомпрометированного ключа. Предлагаю в данный момент отказаться от ключевой фразы и просто нажать Enter.

Подтвердить кодовую фразу или ее отсутсвие, тоже нажав Enter.

В результате вам покажут рисунок вашего ключа:

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

Вывод должен быть таким:

первый файл это приватный ключ, а второй с .pub это публичный.

Активация ключа

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

результат, номер процесса может отличаться:

Добавьте ранее созданный ключ:

При успехе получите ответ:

Ключи SSH готовы к использованию!

Добавление публичного ключа в профиль на GitHub

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

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

это скопирует публичный ключ в буфер обмена.

  • если данная команда не работает, откройте файл id_ed25519.pub в любом текстовом редакторе, и скопируйте все содержимое файла, публичный ключ выглядит так:

Нажимайте не кнопку New SSH Key

В поле Key вставьте скопированный ключ:

В поле Title можете вставить название ключа, пригодится если у вас будет в профиле более одного ключа. Поможет их различать.

Нажимайте кнопку Add SSH Key .

Теперь можно использовать SSH доступ к вашим репозиторияем!

Получение репозитория по SSH

Откройте репозиторий и скопируйте ссылку для SSH доступа:

И как обычно используйте команду git clone:

Зайдите в репозиторий и скопируйте SSH ссылку доступа, перейдите в локальный репозиторий и удалите текущий remote origin:

и добавьте новый, последняя строка в команде это ссылка доступа SSH:

проверьте список удаленных репозиториев:

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

Что такое репозиторий

Это каталог в файловой системе, где хранится информация о проекте:

  • файлы и папки проекта
  • история проекта
  • настройки проекта
  • служебная информация

Информация о репозитории хранится в скрытой папке .git в корне проекта.

Можно ли работать с git локально

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

Локальный репозиторий

Это репозиторий, который хранится на нашей машине, в рабочей папке проекта. Это та самая скрытая папка .git

Удаленный репозиторий, зачем он нужен

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

Плюсы удаленного репозитория

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

Что такое клонирование

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

Как клонировать готовый проект

Наберем в командной строке

При этом в текущем каталоге создастся папка vue, в ней окажутся все файлы проекта vue и специальная скрытая папка .git, то есть сам репозиторий, или информация о нем.

Как клонировать проект в другую папку

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

Где vue-new - нужное название папки.

Свой удаленный репозиторий

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

Где держать репозиторий

Есть множество вариантов, самые известные - это github и bitbucket. Нужно выбирать.

github или bitbucket

На самом деле не парьтесь. У них схожий функционал, и в начале работы с git мы не заметим разницы. bitbucket мне нравится больше из-за интерфейса, но в уроках выберем github из-за его большей популярности.

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

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

Права на репозиторий, публичные и приватные

Есть 2 типа репозиториев:

  • публичный (public), открыт всем
  • приватный (private), доступен только определенному кругу лиц - в первую очередь, нам самим

Публичные репозитории хороши для opensource-проектов и чтобы показать в резюме. Пока нам это не нужно.

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

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

Что такое ssh-ключи

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

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

ssh-ключ состоит из пары ключей: публичного и приватного ключа. Это просто 2 текстовых файла:

  • /домашний-каталог/.ssh/id_rsa.pub - публичный
  • /домашний-каталог/.ssh/id_rsa - приватный

Публичный ключ передается сторонним серверам, например, github, для открытия доступа на эти сервера. Приватный ключ хранится только на нашей машине и никому не передается. То есть когда у нас просят ssh-ключ, чтобы дать доступ на какой-нибудь сервер, мы отдаем именно публичный ключ, id_rsa.pub

Как сгенерировать ssh-ключ

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

Если видим файлы id_rsa и id_rsa.pub - отлично, ключи уже есть.

Если этих файлов нет, то нужно сгенерировать ключи утилитой ssh-keygen. В Windows она устанавливается вместе с git, в Linux и MacOS при необходимости установите. В Linux, например, вот так

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

Появились файлы id_rsa и id_rsa.pub - значит, ключи успешно сгенерированы.

Как добавить ssh-ключ в настройках github

Открываем публичный ключ id_rsa.pub и копируем его содержимое. В настройках github ищем раздел "SSH и GPG keys" - https://github.com/settings/keys. Жмем "New SSH key", задаем название ключа, например, имя, и вставляем форму публичный ключ, прямо текстом. Все, теперь у нас есть доступ к нашим приватным репозиториям.

Два способа создания проекта

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

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

Рассмотрим оба способа.

Пустой проект

Идем в командную строку и запускаем

В текущей папке получим новую папку с названием first-site - это и есть наш проект.

P.S. У вас склонировать этот репозиторий не получится - он закрытый. Создайте свой :-)

Непустой проект

Допустим, у нас на локальной машине уже есть проект second-site. Создаем в github репозиторий second-site. Заходим в папку проекта и выполняем команды

Все, можно приступать к работе над проектом. Команды add, commit и push мы разберем в следующих уроках.

Это единственный урок, в котором мы разбирались с тонкостями репозиториев. В дальнейшем будем считать, что репозиторий = проект.

Что могу посоветовать

  • github или bitbucket? Для личных проектов неважно, оба сервиса разрешают бесплатно создавать приватные репозитории. Для open source или резюме - github
  • не увлекайтесь клонированием в папку со своим названием. Есть шанс запутаться, самому или коллегам
  • не путайте публичный и приватный ключи. Отдаем вовне только публичный ключ id_rsa.pub
  • при смене рабочей машины можно не генерировать ssh-ключи заново, а скопировать их со старой машины. Тогда не придется заново прописывать новые ключи на серверах

Немного подробнее о копировании ssh-ключей

Как скопировать ssh-ключи с одной машины на другую

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

Ссылки, которые могут пригодиться

На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.

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

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

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

Как установить Git

Чтобы использовать команды Git, сперва его нужно поставить на компьютер.

На iOS он чаще всего идёт из коробки: чтобы найти его, нужно открыть терминал и набрать git --version :

Если вдруг его у вас нет, можно воспользоваться менеджером недостающих пакетов для macOS — Homebrew . Для установки пропишите в консоли brew install git.

Чтобы использовать Git на системе Linux, нужно поставить пакет Git. Например, для установки на Ubuntu нужно будет прописать sudo apt install git.

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

Как только Вы создали эккаунт на GitHub (см. статью "Как зарегистрироваться на GitHub"), перед Вами должно появиться похожее окно:

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

Но сейчас, давайте начнем с основ. Сверху слева находится поисковая строка:


Справа вверху - небольшое меню:


Колокольчик - это уведомления.

Если нажать на иконку справа, появится меня для управления учётной записью:

Если же нажать на плюс, откроется выпадающее меню:

Как видите, можно:

  • создать новый репозиторий ("New repository")
  • импортировать репозиторий ("Import repository")
  • новый gist ("New gist") - что-то наподобие статьи в блог
  • новая организация ("New organisation") - например, Вы можете создать организацию, с которой можно связывать учётные записи на GitHub.

Три способа создать репозиторий на GitHub:

Cпособ 1: нажать на "New repository".

Способ 2: нажать на большую кнопку "Start a project" ("Создать проект"):


Способ 3: нажать на зеленую кнопку "New repository" ("Новый репозиторий") в окошке Repositories ("Репозитории"):


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

Вы уже знаете три способа создать новый репозиторий! 🙂 Тогда создайте репозиторий, использовал любой из 3 способов.

Создали? Отлично, тогда Вы должны увидеть вот такую страницу:


Отлично! Давайте разберем по частям.

Сверху, Вы видите собственника репозитория ("Owner"), и название репозитория ("Repository name"). Давайте назовем его "first-repo":


Как выбирать имя для репозитория

В языке Java есть определенные Naming Conventions (Code Conventions), т.е. соглашение о том, как нужно называть переменные, классы, методы и т.д. Как Вы наверное помните, в Java принято использовать CamelCase (по-другому CamelStyle).

На GitHub таких правил нет. Тем не менее, часто можно увидеть запись через дефис (как сделали мы), или тем же CamelCase.

Для примера, можно посмотреть на репозитории:

Вот так выглядит репозиторий Google.


Если Вы просмотрите эти репозитории, то увидите, что чаще всего названия из нескольких слов записываются через дефис, или CamelCase.

Возвращаемся к созданию репозитория

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

В описании давайте напишем "Первый проект на Git":


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


На этом мы можем остановиться и нажать большую зеленую кнопку "Создать репозиторий" ("Create repository"). Тем не менее, есть еще несколько настроек, которые мы можем сделать.


Во-первых, Вы видите галочку "Initialise this repository with a README" (Создать репозиторий с README). README - это еще один способ рассказать людям, просматривающим Ваш репозиторий, о Вашем проекте.

Хорошо расписанные README будет выглядет примерно так:

Но написание таких файлов - отдельная наука. Файл README имеет расширение .md, свой синтаксис и метки. Подробнее то, как следует писать файл README, мы рассмотрим в следующих статьях.

Кроме создания README, у нас есть еще две опции - добавлять ли файл .gitignore (по умолчанию None - не добавлять), и добавлять ли лицензию (по умолчанию тоже None).

Про то, что такое файл .gitignore, мы поговорим в следующих статьях. В двух словах, это файл, который говорит GIT, какие файлы следует игнорировать при загрузке.

Также, Вы потенциально можете добавить лицензию к своему проекту:

Дело в том, что на GitHub размещают много open-source проектов, то есть бесплатных программ с открытым кодом. Интересно, что обычно лицензия используется не для того, чтобы ограничить доступ в проекту, а наоборот, чтобы позволить другим людям использовать Ваш код. Когда Вы ничего не указываете в поле "лицензия", использование кода из репозитория считается кражей.

Итак, отлично! Мы разобрались с основными полями, которые надо заполнить. Теперь, нажмем большую зеленую кнопку "Создать репозиторий" ("Create repository").

Теперь Вы должны видеть перед собой похожую страницу:

Вот мы и создали свой первый репозиторий на GitHub. Теперь он появится у Вас в разделе "Репозитории" на главной странице:


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

Спасибо, что были с нами! 🙂

Надеемся, что наша статья была Вам полезна. Можно записаться к нам на курсы по Java на сайте.

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