Работа с репозиторием слушателя

Репозиторий слушателя - это репозиторий, который создан инструктором для выполнения заданий на курсе. Имя репозитория будет online-13-имя-фамилия.

Для каждого участника курса создан свой приватный репозиторий на GitHub, доступ к которому есть только у инструктора и участника. Репозиторий создает инструктор, слушателю нужно только получить к нему доступ. Для получения доступа к репозиторию, нужно написать свой акаунт на Github инструктору.

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

Для работы с ним локально, его нужно скопировать (клонировать). Для этого используется команда git clone. В этой команде вам нужно сменить имя “natasha-samoylenko” на имя в своем репозитории.

$ git clone git@github.com:pyneng/online-13-natasha-samoylenko.git

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

Пример вывода

$ git clone git@github.com:pyneng/online-13-natasha-samoylenko.git
Cloning into 'online-13-natasha-samoylenko'...
remote: Counting objects: 241, done.
remote: Compressing objects: 100% (191/191), done.
remote: Total 241 (delta 43), reused 239 (delta 41), pack-reused 0
Receiving objects: 100% (241/241), 119.60 KiB | 0 bytes/s, done.
Resolving deltas: 100% (43/43), done.
Checking connectivity... done.

В итоге, в текущем каталоге, в котором была выполнена команда git clone, появится каталог с именем равным имени репозитория. В моем случае - online-13-natasha-samoylenko.

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

Работа с репозиторием

Предыдущая команда не просто скопировала репозиторий локально, но и настроила соответствующим образом Git:

  • был создан каталог .git
  • скачаны все данные репозитория
  • скачаны все изменения, которые были в репозитории
  • ваш репозиторий на GitHub настроен как remote для этого репозитория

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

Обычно, последовательность работы будет такой:

  • перед началом работы, синхронизируете локальное содержимое с GitHub командой git pull (синхронизация из GitHub в локальный репозиторий)
  • редактируете какие-то файлы репозитория
  • добавляете их в staging командой git add
  • делаете commit с помощью git commit
  • когда вы готовы закачать локальные изменения на GitHub, делаете git push

Если вы работаете с заданиями с работы и дома, надо не забывать первый и последний шаг:

  • первый шаг - обновляет ваш локальный репозиторий на виртуалке
  • последний шаг - загружает изменения на GitHub

Синхронизация из GitHub в локальный репозиторий

Все команды выполняются внутри каталога репозитория (в примере выше - online-13-natasha-samoylenko)

Команда git pull:

$ git pull

Если содержимое локального репозитория одинаково с удаленным репозиторием - GitHub, вывод будет таким:

$ git pull
Already up-to-date.

Если что-то было изменено, вывод будет примерно таким:

$ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 5 (delta 4), reused 5 (delta 4), pack-reused 0
Unpacking objects: 100% (5/5), done.
From ssh://github.com/pyneng/online-13-natasha-samoylenko
   89c04b6..fc4c721  main     -> origin/main
Updating 89c04b6..fc4c721
Fast-forward
 exercises/03_data_structures/task_3_3.py | 2 ++
 1 file changed, 2 insertions(+)

Добавление новых файлов или изменений в существующих файлах

Добавление всех новых файлов или изменений в существующих:

$ git add .

Если необходимо добавить конкретный файл (в данном случае - README.md):

$ git add README.md

Commit

При выполнении commit обязательно надо указать сообщение. Будет лучше, если сообщение будет со смыслом, а не просто “update” или подобное:

$ git commit -m "Сделаны задания 4.1-4.3"

Push на GitHub

Для загрузки всех локальных изменений на GitHub, используется git push:

$ git push origin main
Counting objects: 5, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 426 bytes | 0 bytes/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
To ssh://git@github.com/pyneng/online-13-natasha-samoylenko.git
   fc4c721..edcf417  main -> main

Перед выполнением git push, можно выполнить команду $ git log -p origin/main.. - она покажет какие изменения вы собираетесь добавлять в свой репозиторий на GitHub.

Leave a Comment