Информационные технологии (часть 2)

5 Основы Git – Работа с удалёнными репозиториями

Для того, чтобы внести вклад в какой-либо Git-проект, вам необходимо уметь работать с удалёнными репозиториями. Удалённые репозитории представляют собой версии вашего проекта, сохранённые в интернете или ещё где-то в сети. У вас может быть несколько удалённых репозиториев, каждый из которых может быть доступен только для чтения или для чтения/записи. Взаимодействие с другими пользователями предполагает управление удалёнными репозиториями, а также отправку и получение из них данных. Управление репозиториями включает в себя как умение добавлять новые, так и умение удалять устаревшие репозитории, а также умение управлять различными удалёнными ветками, объявлять их отслеживаемыми или нет и так далее. В данном разделе мы рассмотрим некоторые из этих навыков.

Примечание

Удаленный репозиторий может находиться на вашем локальном компьютере.

Вполне возможно, что удалённый репозиторий будет находиться на том же компьютере, на котором работаете вы. Слово «удалённый» не означает, что репозиторий обязательно должен быть где-то в сети или Интернете, а значит только – где-то ещё. Работа с таким удалённым репозиторием подразумевает выполнение стандартных операций отправки и получения, как и с любым другим удалённым репозиторием.

Задание к работе

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

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

Создание аккаунта на GitHub

Тут ничего сложного — понадобится имя пользователя, электронная почта и пароль.

После этого надо создать репозиторий на GitHub (create project). Он будет доступен по адресу:

То есть если мы зарегистрируемся с логином javakitt и создадим репозиторий example, то он будет доступен по адресу:

Теперь есть два варианта:

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

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

Мы рассмотрим второй вариант (вдруг у вас уже есть файлы).

Публикация сайта с GitHub на хостинг

Чтобы клонировать изменения с GitHub на хостинг REG.RU:

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

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

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

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

Идем на другую машину (в тестовой среде был просто сменен пользователь командой su mailer, затем выполнен переход в его домашний каталог cd /home/mailer)

git clone https://github.com/exampleuser/test.git

Cloning into ‘test’…
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
Checking connectivity… done.

Переходим в каталог test

Редактируем файл password

git config —global user.email «testuser2017@mail.ru»

git config —global user.name «testuser2017»

git commit -m «added by another user»

git commit -m «added by another user»[master d578a72] added by another user
1 file changed, 2 insertions(+), 1 deletion(-)

Отправляем на github

Username for ‘https://github.com’: exampleuser
Password for ‘https://exampleuser@github.com’:
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 293 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/exampleuser/test.git
c2a671f..d578a72 master -> master

Проверяем, что на github появилась информация о сделанном коммите, а файл обновился

Теперь авторизуемся на сервере с реквизитами пользователя от имени которого работа велась изначально и выполняем команду git pull origin master

remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/exampleuser/test
* branch master -> FETCH_HEAD
c2a671f..d578a72 master -> origin/master
Updating c2a671f..d578a72
Fast-forward
password | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Просматриваем файл password — видим, что изменения сделанные и закоммиченные другим пользователем сохранились

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector