Работа с репозиторием заданий и примеров

Все примеры и задания книги выложены в отдельном репозитории.

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

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

Для копирования репозитория с GitHub выполните команду git clone:

$ git clone https://github.com/natenka/pyneng-examples-exercises
Cloning into 'pyneng-examples-exercises'...
remote: Counting objects: 1263, done.
remote: Compressing objects: 100% (504/504), done.
remote: Total 1263 (delta 735), reused 1263 (delta 735), pack-reused 0
Receiving objects: 100% (1263/1263), 267.10 KiB | 444.00 KiB/s, done.
Resolving deltas: 100% (735/735), done.
Checking connectivity... done.

Обновление локальной копии репозитория

При необходимости обновить локальный репозиторий, чтобы синхронизировать его с версией на GitHub, надо выполнить git pull, находясь внутри созданного каталога pyneng-examples-exercises.

Если обновлений не было, вывод будет таким:

$ git pull
Already up-to-date.

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

$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 2), reused 3 (delta 2), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/natenka/pyneng-examples-exercises
   49e9f1b..1eb82ad  master     -> origin/master
Updating 49e9f1b..1eb82ad
Fast-forward
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Обратите внимание на информацию о том, что изменился только файл README.md.

Просмотр изменений

Если вы хотите посмотреть, какие именно изменения были внесены, можно воспользоваться командой git log:

$ git log -p -1
commit 98e393c27e7aae4b41878d9d979c7587bfeb24b4
Author: Наташа Самойленко <nataliya.samoylenko@gmail.com>
Date:   Fri Aug 18 17:32:07 2017 +0300

    Update task_24_4.md

diff --git a/exercises/24_ansible_for_network/task_24_4.md b/exercises/24_ansible_for_network/task_24_4.md
index c4307fa..137a221 100644
--- a/exercises/24_ansible_for_network/task_24_4.md
+++ b/exercises/24_ansible_for_network/task_24_4.md
@@ -13,11 +13,12 @@
 * применить ACL к интерфейсу

 ACL должен быть таким:
+
 ip access-list extended INET-to-LAN
  permit tcp 10.0.1.0 0.0.0.255 any eq www
  permit tcp 10.0.1.0 0.0.0.255 any eq 22
  permit icmp any any
-
+

 Проверьте работу playbook на маршрутизаторе R1.

В этой команде флаг -p указывает, что надо отобразить вывод утилиты Linux diff для внесённых изменений, а не только сообщение коммита. В свою очередь, -1 указывает, что надо показать только один самый свежий коммит.

Просмотр изменений, которые будут синхронизированы

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

Для этого используется следующая команда:

$ git log -p ..origin/master
commit 4c1821030d20b3682b67caf362fd777d098d9126
Author: Наташа Самойленко <nataliya.samoylenko@gmail.com>
Date:   Mon May 29 07:53:45 2017 +0300

Update README.md

diff --git a/tools/README.md b/tools/README.md
index 2b6f380..4f8d4af 100644
--- a/tools/README.md
+++ b/tools/README.md
@@ -1 +1,4 @@
+
+Тут находятся PDF версии руководств по настройке инструментов, которые используются на курсе.

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

Примечание

«..origin/master» в команде git log -p ..origin/master означает показать все коммиты, которые есть в origin/master (в данном случае, это GitHub), но которых нет в локальной копии репозитория

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