Перейти к содержимому

Как клонировать репозиторий с gitlab ubuntu

  • автор:

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

допустим, на локальной машине у меня есть проект с такой структурой:

project(folder) ----.git(folder) ----modules(folder) ----index.html(file) 

задача в том чтобы клонировать модуль hello_world.js в каталог project/modules

для этого я какой-нибудь командой(пока не знаю какой, но это не существенно) указываю гиту чтобы он клонировал(то есть выполнил fetch, merge) с гитлаба hello_world.js ,при этом при помощи ключа указываю имя целевого каталога(modules)

таким образом hello_world.js клонируется и помещается в указанный каталог. в результате я имею такую структуру проекта:

project(folder) ----.git(folder) ----modules(folder) --------hello_world.js ----index.html(file) 

если бы я клонировал, не указав целевой каталог, то в результате имел бы такую структуру проекта:

project(folder) ----.git(folder) ----hello_world.js ----modules(folder) ----index.html(file) 

Git для начинающих. Урок 2.
Создание и клонирование репозитория

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В первую очередь, нужно получить ссылку на проект. Мы можем найти ее сами или получим готовую, например, на новой работе. Возьмем для примера репозиторий vuejs — https://github.com/vuejs/vue.git

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

 $ git clone https://github.com/vuejs/vue.git 

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

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

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

 $ git clone https://github.com/vuejs/vue.git vue-new 

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

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

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

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

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

github или bitbucket

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

Чтобы продолжить уроки, нужно зарегистрироваться на github. Если у вас нет там аккаунта, то форму регистрации увидите сразу на главной странице — https://github.com/

Как создать репозиторий в 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-ключи сами собой не появляются, но стоит проверить, возможно, они были установлены раньше. Запустим в терминале команды

 $ cd ~/.ssh $ ls -l 

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

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

 $ sudo apt install ssh-keygen 

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

 $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 
 $ ls -l total 24 -rw------- 1 sn8 sn8 1675 Feb 11 2017 id_rsa -rw-r--r-- 1 sn8 sn8 392 Feb 11 2017 id_rsa.pub -rw-r--r-- 1 sn8 sn8 5746 Oct 28 21:52 known_hosts 

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

known_hosts — это файл, в котором ssh прописывает сервера, на которые мы заходим. При первом подключении к github нужно будет разрешить доступ к github.com (напечатать yes в терминале)

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

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

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

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

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

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

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

Создаем приватный репозиторий на github, назовем его first-site. Я зарегистрировался под именем Webdevkin, моя ссылка для клонирования будет такая — git@github.com:Webdevkin/first-site.git. Ваша зависит от имени пользователя.

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

 $ git clone git@github.com:Webdevkin/first-site.git 

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

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

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

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

 $ git init $ git add . $ git commit -m "Initial commit" $ git remote add origin git@github.com:Webdevkin/second-site.git $ git push -u origin master 

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

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

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

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

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

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

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

  • Скопировать id_rsa и id_rsa.pub со старой машины на новую
  • Посмотреть права на файлы, возможно, ключи окажутся слишком «открытыми» для записи и потребуется сменить им права доступа — sudo chmod 700 ~/.ssh/*
  • Выполнить команду ssh-add

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

  • github — https://github.com/
  • bitbucket — https://bitbucket.org/
  • подробнее об ssh-ключах (en) — connecting-to-github-with-ssh

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

Спасибо за внимание и до встречи!

Все уроки курса

  • Вводный урок
  • 1. Установка и базовая настройка git
  • 2. Создание и клонирование репозитория git
  • 3. Делаем первые изменения, git status и git diff
  • 4. Коммиты и история коммитов, git commit, git log и git show
  • 5. Подробнее об истории коммитов. Путешествие по истории
  • 6. Работа с сервером, git push и git pull
  • 7. Ветки — главная фишка git, git branch и git checkout
  • 8. Работа с ветками на сервере, git fetch
  • 9. Слияния или мерджи веток, git merge
  • 10. Конфликты и их разрешение
  • Платная часть курса. Презентация
  • * 11. Работа с gitignore и git exclude
  • * 12. Буфер обмена git, git stash
  • * 13. Копирование коммитов, git cherry-pick
  • * 14. Отмена и редактирование последнего коммита
  • * 15. Отмена произвольного коммита, git revert
  • 16. Склеивание коммитов, git rebase —interactive и git reflog
  • * 17. Зачем склеивать коммиты. Плюсы и минусы сквоша
  • * 18. Работа с git rebase. Отличия от merge
  • * 19. Что такое git push —force и как с ним работать
  • * 20. Ищем баги с помощью git, git bisect
  • * 21. Как и зачем работать с тегами git
  • * 22. Процессы: github flow и git flow
  • * 23. Псевдонимы в git
  • 24. Мердж-реквесты
  • * 25. Форки

ubuntu git как клонировать репозиторий

git ubuntu Как установить, настроить и клонировать Git репозиторий по ssh. clone. github bitbucket

vedro-compota's picture

Submitted by vedro-compota on Sat, 01/21/2017 — 21:49

Forums:

Как начать работать с git репозиторием в ubuntu, используя SSH

  1. Установите Git
  2. Сконфигурируйте SSH для подключения к серверу хранилища (например, гитхаба или битбакета).
  3. Далее перейдите в нужную вам папку и выполните команду клонирования в формате:
  4. Для GitHub:

git clone git@github.com:YOUR_USERNAME/REPO_NAME.git

  • Read more about git ubuntu Как установить, настроить и клонировать Git репозиторий по ssh. clone. github bitbucket
  • Log in to post comments
  • 6016 reads

Популярное

Today’s:

  • Урок 9 Задача 6 (вариант 3)
  • pgAdmin 4 — создать подключение — Create new server
  • §10 Деление многочлена на двучлен первой степени
  • Операция деления нацело, получение остатка
  • гугл в десятый раз говорит , что меняет политику конфеденциальности — видимо там что-то серьёзное)
  • сравнение строк си
  • JQuery замена спец. символов в текста на HTML сущности — пример
  • §65. Десятичные логарифмы
  • §18. Равносильные уравнения. Основные приёмы решения уравнений
  • docker-compose Пересобрать (перезапустить) только один сервис (контейнер)
  • Скопировать Английский Алфавит (copy English alphabet). Все буквы в строчку, в столбик
  • CLR что это
  • #35 Правила округления
  • #30 Обращение десятичной дроби в простую и обратно
  • Урок 9 Задача 5
  • #34 Способ записи приближенных чисел
  • Урок 9 задача 10
  • Урок 9 задача 7
  • #29 Деление десятичной дроби на десятичную дробь
  • Урок 9 Задание 12
  • функция theme drupal
  • Python — базовые теоретические выкладки.
  • #33 О приближенных вычислениях
  • §34 О комплексных числах
  • Работа с разными типами данных
  • §66. Действия с искусственными выражениями отрицательных логарифмов
  • Урок 11 задача 6
  • §43. Геометрический смысл сложения и вычитания комплексных чисел
  • read only восстанавливается на папке
  • #28 Деление десятичной дроби на целое число

¶ Git и GitLab

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

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

¶ Установка Git

Перед началом работы с GitLab установите себе на устройство приложение Git по ссылке.

Найти подробную инструкцию по установке Git можно здесь.

¶ Авторизация в GitLab

Авторизуйтесь в сервисе GitLab через корпоративную почту @miem.hse.ru.

Затем выберите в верхней панели раздел «Groups». Щелкните на «Your Groups». На этой странице должна находиться группа с номером и названием вашего проекта. Нажмите на нее, чтобы открыть.

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

¶ Установка пароля

После авторизации нужно установить пароль для вашего аккаунта в GitLab.

  1. Нажмите на вашу иконку в правом верхнем углу и перейдите в раздел «Настройки» (settings).
  2. Затем перейдите во вкладку «Пароль» (password).

  1. Укажите ваш новый пароль и сохраните его.

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

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

Репозиторий (хранилище) — место, где хранятся и поддерживаются данные. Чаще всего данные в репозитории хранятся в виде файлов.

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

Узнать более подробную информацию можно перейдя по ссылке: что такое репозиторий?

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

Шаг 1. Зайдите в свой аккаунт на GitLab и нажмите на иконку «Groups» в верхней панели.

Шаг 2. Затем перейдите во вкладку «Your group».

Шаг 3. Выберите команду с названием вашего учебного проекта.

Если вы не видите в разделе «Your group» команду вашего проекта, то обратитесь в Техподдержку.

Шаг 4. Вы перешли на страницу своей команды. Теперь нужно создать репозиторий. Для этого нажмите на кнопку «New project».

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

Шаг 5. Напишите название вашего репозитория и добавьте нужные данные. Готово!

Рекомендуем установить галочку напротив «Инициализировать репозиторий файлом README» — в репозитории появится документ «README. md», в котором можно описывать файлы, содержащиеся в этом репозитории.
Если вы хотите залить сюда файлы из уже существующего репозитория, то можеть не создавать новый «README. md».

Шаг 6.

  1. Для этого зайдите на страницу нужного вам проекта. Далее перейдите в настройки.

  1. Опуститесь до раздела «Advanced» и разверните его с помощью кнопки «Expand«.

  1. Найдите внутри блок «Transfer project» и с помощью селектора выберите новое расположение.

Переместить проект может человек только с ролью «Maintainer»(подробнее в разделе участники и роли)

Перенос существующего репозитория с другой платформы

Если проект был создан на другой платформе (Github, Bitbucket и т.д.), то при создании нового репозитория откройте вверху вкладку «Import project» вместо «Blank project«, а затем выберите » Repo by URL«.

Нужно обязательно выбрать «Repo by URL«, в остальных случаях импорт не всегда проходит успешно

При этом вся информация по коммитам будет перенесена. Однако, чтобы она корректно отображалась и учитывалась в статистике, необходимо, чтобы коммиты были сделаны с почты @miem.hse.ru. Если коммиты были сделаны с другой почты, то необходимо добавить ее адрес в личном кабинете в Git.miem.hse.ru (подробнее в блоке «Коммит»)

¶ Локальная работа с репозиторием

Откройте нужный репозиторий и нажмите на кнопку «Clone». Скопируйте ссылку.

¶ Переход в консоль

Далее вам нужно перейти в консоль.

Как это сделать?

  1. Нажмите на значок поиска на Панели задач или кнопку Пуск.
  2. Далее нажимите «Выполнить».

  1. В строке поиска напечатайте «cmd».

  1. В результате вы увидите окно консоли.

Не на всех видах Windows консоль открывается так, как указано выше. НО на всех можно нажать Win+R и ввести cmd .

  1. В строке поиска Spotlight введите слово «Терминал» и нажмите Enter .
  2. В результате вы увидите окно терминала.
  • Linux
    Для открытия консоли (терминала) нажмите сочитание следующих клавиш: Alt+Ctrl+F1 .

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

Для получения копии существующего Git-репозитория необходимо ввести в терминале команду git clone .

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

Клонирование репозитория осуществляется командой:
git clone

После вы должны ввести имя пользователя и пароль от своей учетной записи в GitLab.

Обратите внимание, что имя пользователя — это имя вашей корпоративной почты до символа «@», а пароль — это пароль, который мы ранее установили в GitLab.
Если у вас возникают ошибки авторизации, обязательно проверьте, какой у вас логин: нажмите на крайнюю кнопку справа сверху на главной странице GitLab и посмотрите, что указано под вашей фамилией.

Вы можете в любой момент перейти к папке с вашим репозиторием с помощью команды:
cd путь/к/директории

Следующая команда показывает, что файл «README.md» скачался и лежит в нашей папке:
dir (ls в Unix)

клонирование репозитория прошло успешно

¶ Заполнение данных

Первое, что вам следует сделать после установки Git — указать ваше имя и адрес электронной почты. Каждый коммит в Git, сделанный вами, будет содержать эти данные. Это информация о разработчике, который вносит изменения.
Используем следующие команды:
git config —global user.name «Иван Иванов»
git config —global user.email ivivanov@miem.hse.ru

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

Если вы хотите проверить используемую конфигурацию, можете использовать команду git config —list , чтобы показать все настройки, которые Git найдёт:

¶ Добавление файлов в репозиторий

Одной из важнейших команд является git status . Система отслеживает изменения, и с помощью этой команды мы узнаем о состоянии системы. Если выполнить эту команду сразу после клонирования, то можно увидить что-то вроде этого:

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

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

¶ Встроенный редактор GitLab

GitLab предоставляет простой способ внести небольшие изменения в файлы проекта. Это среда разработки, встроенная в сайт GitLab. Чтобы её запустить, найдите файл, который нужно отредактировать и щелкните по его названию. На открывшейся странице вы увидите содержимое файла и две кнопки: Edit и Web IDE . Первая кнопка откроет файл для простого редактирования, вторая запустит встроенную среду разработки.

Также на сайте предусмотрена возможность создавать новые файлы. Для этого на странице репозитория нажмите на кнопку «+» и выберите «New file» . В открывшемся редакторе введите имя файла и нужное содержимое. Не забудьте нажать на кнопку Commit changes по завершении редактирования.

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

¶ Изменения в существующем файле

Чтобы внести изменения в файл, который скопировался вместе с репозиторием, просто перейдите в папку с копией репозитория на компьютере и откройте этот файл. В нашем случае, это файл «README.md». Он должен содержать описание репозитория, отображаемое на его странице на сайте. Добавьте в него новую строку и сохраните:

Если вы выполните команду git status , то увидите свои неотслеживаемые изменения в файле:

Мы видим, что у нас есть недобавленные изменения.

Для добавления изменений используется команда git add . Команда git add . добавляет все изменения в рабочей директории в индекс для последующего коммита.

¶ Что такое коммит?

Коммит — это сохранение, фиксация (в архиве, репозитарии и т.д.) изменений в программном коде.

Команда git commit берёт все данные, добавленные в индекс с помощью git add , и сохраняет их слепок во внутренней базе данных, а затем сдвигает указатель текущей ветки на этот слепок.

При коммите данных их необходимо комментировать, чтобы в дальнейшем каждое изменение в проекте было с описанием действий. Для этого используется команда
git commit -m «комментарий»

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

¶ Добавление нового файла в удаленный репозиторий

Для того чтобы залить изменения в удаленный репозиторий, который находится на git.miem.hse.ru, нужно использовать команду git push .

Рассмотрим пример:
Создадим новый файл «text.txt» в папке «main» и выполним следующие действия:

Шаг 1. Добавим файл в нашу папку main;

Шаг 2. Зафиксируем изменения и узнаем текущее состояние файла;

Шаг 3. Отправим изменения в локальное хранилище (то есть выполним коммит).

С помощью команды git push отправим данные локального репозитория на удаленный репозиторий (Origin — это наш репозиторий).

Заходим в GitLab и видим, что отправка данных прошла успешно.

¶ Отмена действий

Если вы добавили файлы в состояние ожидания, но передумали и не хотите добавлять некоторые из них, то нужно использовать команду:
git rm —cached «название файла»

Укажите, какой файл необходимо удалить из ожидания на коммит.

¶ Проблемы при входе

  • Если вы ввели неправильно пароль (на Windows), а во второй раз ваши данные не запрашиваются, то вам нужно сделать следующие действия:
    панель управления -> учетные записи -> диспетчер учетных данных -> удалить данные GitLab
    После чего заново повторить первые шаги с вводом ваших данных.
  • Чтобы на устройствах Linux/Mac каждый раз не запрашивался пароль, нужно использовать следующую команду:
    git config credential.helper store

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

  1. Основные понятия: Ветки
  2. Основные понятия: Зеркалирование репозитория
  3. Управление командой: Различия прав доступа
  4. Навигация: Уровень видимости проекта

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

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