├── README.md ├── _config.yml ├── remote └── README.md ├── self └── README.md ├── team-2 ├── README.md └── issue-example.md └── team ├── README.md └── src ├── archive.zip └── landing.zip /README.md: -------------------------------------------------------------------------------- 1 | # Домашние задания по курсу «Git: система контроля версий» 2 | 3 | 1. [Самостоятельное задание «Создание локального репозитория»](self/README.md) 4 | 1. [Работа с удаленным репозиторием через GitHub](remote/README.md) 5 | 1. [Командная работа в Git & GitHub](team/README.md) 6 | 1. [Командная работа в Git & GitHub. Часть 2](team-2/README.md) -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-hacker -------------------------------------------------------------------------------- /remote/README.md: -------------------------------------------------------------------------------- 1 | # Домашнее задание к лекции «Работа с удаленным репозиторием через GitHub» 2 | 3 | _Примерное время выполнения: 30 минут_ 4 | 5 | Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу. 6 | **Пожалуйста, не прикладывайте никакие файлы, в том числе на Google Диск или Яндекс.Диск.** 7 | 8 | _______ 9 | 10 | ## Цели задания: 11 | 12 | Научиться работать с проектом в удаленном репозитории, а именно: 13 | 14 | 1. Опубликовать свой проект 15 | 2. Создать ветку в проекте 16 | 3. Слить изменения из одной ветки в другую 17 | 18 | Данная практика поможет вам научиться демонстрировать свои проекты через GitHub, а также создавать копии чужих репозиториев и вносить изменения в данные копии проектов. Эти навыки пригодятся вам для выполнения домашних заданий во время обучения, когда нужно будет отправлять результаты работы преподавателям. Кроме того, вы сможете начать собирать свое портфолио на GitHub и в дальнейшем его демонстрировать потенциальным работодателям или заказчикам. 19 | 20 | ## Чек-лист готовности к выполнению домашнему заданию: 21 | 22 | - [ ] Установите Git на своем локальном компьютере 23 | - [ ] Создайте профиль на GitHub 24 | - [ ] Настройте SSH-ключ 25 | - [ ] Выполните квиз по теме «Установка и настройка Git» 26 | - [ ] Выполните квиз по теме «Работа с локальным репозиторием в Git» 27 | - [ ] Просмотрите видео к занятию «Работа с удалённым репозиторием в GitHub» 28 | - [ ] Изучите презентацию к занятию «Работа с удалённым репозиторием в GitHub» 29 | 30 | ---------------------- 31 | 32 | ## Инструкция к заданию 33 | 34 | ### Задача №1: Публикация репозитория 35 | 36 | В предыдущем задании вы создали локальный репозиторий. Чтобы продемонстрировать результат коллегам вам нужно опубликовать его на GitHub. 37 | 38 | **Важно:** для выполнения этой и всех остальных задач вам нужно создать профиль на [GitHub.com](https://github.com) и настроить SSH-ключ. Информация есть в лекциях. 39 | 40 | 1. Найдите на рабочем столе папку NeuroStartUp. Вы создали её в процессе решения квиза к предыдущей лекции. Откройте для неё терминал. 41 | 2. На сайте GitHub создайте новый пустой публичный репозиторий. Скопируйте ссылку на него. 42 | 3. В терминале свяжите локальный репозиторий с удалённым. Используйте кодовое слово `origin`. 43 | 4. Опубликуйте репозиторий на GitHub. Для этого используйте команду `git push -u origin main` 44 | 5. Перезагрузите страницу с репозиторием в браузере. Убедитесь, что в репозитории есть файл `README.md`, текст правильно отображается и видна вся история проекта. 45 | 46 | **В качестве результата пришлите ссылку на ваш репозиторий на GitHub. Скопируйте ссылку из адресной строки браузера.** 47 | 48 | ### Задача №2: Создание веток 49 | 50 | Вы решили немного доработать главную страницу вашего проекта. Но новый текст требует согласования, команда не готова сразу его менять. Они попросили показать как это будет выглядеть. Для этого вам нужно создать новую ветку и добавить туда новый текст. 51 | 52 | 1. Найдите на рабочем столе папку NeuroStartUp. Откройте для неё терминал. 53 | 2. Создайте новую ветку с названием `new-text` и переключитесь на неё. 54 | 3. Откройте файл `README.md` в текстовом редакторе и вставьте новый текст ниже того, что там уже есть. Нажмите на треугольник ниже, скопируйте текст, вставьте в файл и оформите при помощи Markdown, чтобы он выглядел как в примере: 55 | 56 |
57 | Текст для вставки в файл README.md 58 | 59 | ## Список клиентов 60 | 61 | Мы на столько крутые, что уже успели поработать со следующими компаниями: 62 | 63 | 1. ООО «Рога и копыта» 64 | 1. Издательство «Читый лист» 65 | 1. Космопорт «Черезтерновый Кзвёздный» 66 | 1. Дизайн-студия имени Слишком Известного Персонажа 67 | 68 | Нас можно найти в [google.com](https://google.com/). 69 | 70 |
71 | 72 | 4. Сделайте коммит с изменениями. 73 | 5. Отправьте коммит в репозиторий: `git push -u origin new-text`. 74 | 6. Откройте репозиторий на GitHub в браузере, переключитесь на ветку `new-text` и скопируйте ссылку из адресной строки браузера. 75 | 76 | **В качестве результата пришлите ссылку на ваш репозиторий на GitHub.** 77 | 78 | 79 | ### Задача №3: Слияние веток 80 | 81 | Пока новый текст для главной страницы находится на согласовании вас попросили поработать над другим проектом. Ваш коллега закончил работу над новой фичей и её нужно слить в ветку `main`. 82 | 83 | 1. Склонируйте репозиторий по [ссылке](https://github.com/netology-code/git-2-homeworks-merge.git) на рабочий стол. Форкать репозиторий перед клонированием не нужно! 84 | 2. Откройте терминал для появившейся после клонирования папки. 85 | 3. Прочитайте справку под задачей. 86 | 4. Слейте ветку `earlyorder` с веткой `main`. 87 | 5. Разрешите появившийся при слиянии конфликт. Оставьте один вариант текста на ваше усмотрение. 88 | 6. Создайте новый пустой публичный репозиторий на GitHub. 89 | 7. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. При связывании используйте кодовое слово `target`. Команда будет выглядеть так: `git remote add target ссылка-на-пустой-репозиторий`. 90 | 8. Отправьте локальные изменения ветки `main` в удалённый новый репозиторий `target`. Полностью команда будет выглядеть так: `git push -u target main`. 91 | 92 | **В качестве результата пришлите ссылку на ваш репозиторий на GitHub.** 93 | 94 | #### Справка 95 | 96 | При клонировании в локальный репозиторий клонируется только ветка `main`. Остальные ветки существуют только в удалённом репозитории. Просмотреть все ветки можно командой `git branch -a`. Красным подсвечены удалённые ветки, в начале их имени стоит `remotes/` (в командах оно не нужно), означающий, что ветка находится в удалённом репо, а далее - `origin/`, указывая на то, в каком репозитории они находятся. 97 | 98 | Для слияния не нужно клонировать удалённые ветки в локальный репозиторий. Можно выполнить команду `git merge` указав полное имя удалённой ветки (`origin/earlyorder`). 99 | -------------------------------------------------------------------------------- /self/README.md: -------------------------------------------------------------------------------- 1 | # Самостоятельное задание «Создание локального репозитория» 2 | 3 | ## Ценность выполнения задачи: 4 | 5 | Git — универсальный инструмент, который используют в своей работе многие профессии: IT-разработчики, DevOps-инженеры, системные администраторы, тестировщики, дизайнеры и системные аналитики. В результате выполнения этого домашнего задания вы научитесь создавать репозиторий, а также добавлять в него файлы. Это позволит вам отработать навык публикации своих работ на GitHub. В будущем вы будете добавлять в данную систему контроля версий своё портфолио и демонстрировать его работодателю. Это очень полезный и востребованный навык. Успехов в выполнении задания! 6 | 7 | 8 | **ВАЖНО:** 9 | Данное задание предполагает самопроверку. Это означает, что после отправки решения в личном кабинете Нетологии, вы получите эталонный ответ с пошаговой инструкцией к выполнению задания. Это позволит вам самостоятельно оценить качество выполнения домашнего задания и, в случае необходимости, внести корректировки, опираясь на шаблон. 10 | 11 | 12 | ## Легенда 13 | 14 | Ребята из NeuroStartUp не используют системы контроля версий и достаточно скептически к ним относятся. Вам нужно продемонстрировать преимущества использования системы контроля версий. 15 | 16 | Для этого вы должны сделать демо-проект и продемонстрировать преимущества: 17 | 18 | * хранение истории изменений; 19 | * видимость и авторство каждого изменения; 20 | * «резервная копия» проекта. 21 | 22 | ## Входные данные 23 | 24 | _Описание проекта NeuroStartUp_: 25 | > NeuroStartUp — динамически развивающийся стартап, специализирующийся на поиске с использованием новейших технологий искусственного интеллекта. 26 | > Наши преимущества: 27 | > * Высокая точность поиска 28 | > * Высокая скорость поиска 29 | > * Низкая цена 30 | 31 | _Логотип_: 32 | 33 | ![](https://netology-code.github.io/git-homeworks/introduction/assets/logo.png) 34 | 35 | ## Задача 36 | 37 | 1. Создайте на рабочем столе папку с названием NeuroStartUp. 38 | 2. Откройте для неё терминал и инициализируйте в папке репозиторий. 39 | 3. При помощи текстового редактора в папке создайте файл `README.md` и добавьте в него описание в формате Markdown. 40 | У файла `README.md` не должно быть никаких других расширений. Например, имя файла `README.md.txt` будет считаться ошибкой. 41 | Нажмите на треугольник ниже и скопируйте разметку: 42 | 43 |
44 | Markdown-разметка для файла README.md 45 | 46 | ```markdown 47 | # NeuroStartUp 48 | 49 | ![](https://netology-code.github.io/git-homeworks/introduction/assets/logo.png) 50 | 51 | *NeuroStartUp* — динамически развивающийся стартап, специализирующийся на поиске с использованием 52 | новейших технологий искусственного интеллекта. 53 | 54 | Наши преимущества: 55 | * Высокая точность поиска 56 | * Высокая скорость поиска 57 | * Низкая цена 58 | ``` 59 |
60 | 61 | 4. Сохраните файл. При помощи команды `git status` проверьте, видит ли Git новый файл с названием `README.md`. 62 | 5. Добавьте файл `README.md` в индекс (в отслеживаемые). Сделайте коммит изменений. 63 | 6. В файле `README.md` измените маркированный список на нумерованный. Сохраните файл. 64 | 7. Сделайте второй коммит изменений. 65 | 8. Выполните команду `git log --oneline` и скопируйте ответ терминала. Вставьте скопированный текст в любой текстовый файл (можно использовать Яндекс.Документы, Google Диск или другие облачные хранилища). 66 | 67 | _Это ваш первый репозиторий. По ходу работы вы можете сделать больше двух коммитов. Это абсолютно нормально!_ 68 | 69 | **Важно: не удаляйте папку после выполнения задания. Она вам понадобится.** 70 | 71 | ## В качестве результата пришлите: 72 | 73 | Файла или ссылку на файл со скопированной историей проекта. 74 | 75 | -------------------------------------------------------------------------------- /team-2/README.md: -------------------------------------------------------------------------------- 1 | # Домашнее задание к лекции «Командная работа в Git & GitHub. Часть 2.» 2 | 3 | _Примерное время выполнения: 30 минут_ 4 | 5 | Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу. 6 | **Пожалуйста, не прикладывайте никакие файлы, в том числе на Google Диск или Яндекс.Диск.** 7 | 8 | 9 | _______ 10 | 11 | ## Цели задания: 12 | 13 | Научиться работать над командным проектом через Git & GitHub, а именно: 14 | 15 | 1. Создавать задачи через issues 16 | 2. Вносить изменения в проект через pull request 17 | 3. Публиковать проект на GitHub Pages 18 | 19 | Данная практика поможет вам развить навыки командной работы в Git & GitHub. Вы научитесь задачи в командной проекте, отдавать код на проверку тимлиду, контрибьютить в opensource проекты и создавать простые статические сайты с помощью сервиса GitHub Pages. Это очень важные скилы для тех, кто работает в сфере IT. 20 | 21 | ## Чек-лист готовности к выполнению домашнему заданию: 22 | 23 | - [ ] Установите Git на своем локальном компьютере 24 | - [ ] Создайте профиль на GitHub 25 | - [ ] Настройте SSH-ключ 26 | - [ ] Просмотрите видео к занятию «Командная работа в Git & GitHub. Часть 2» 27 | - [ ] Изучите презентацию к занятию «Командная работа в Git & GitHub. Часть 2» 28 | 29 | ---------------------- 30 | 31 | ## Инструкция к заданию 32 | 33 | ### Задача №1: Работа с issues 34 | 35 | Вы заметили, что при просмотре лендинга вашей компании в мобильном браузере текст наезжает на картинку. 36 | 37 | Поскольку теперь для управления проектами вы используете GitHub, создайте Issue с описанием проблемы ([пример описания](issue-example.md)). Не забудьте приложить скриншот и отметьте в тексте Issue пользователя `@solarrust`. 38 | 39 | _Для выполнения этого задания не нужно использовать блок assign при создании issue._ 40 | 41 | 1. Откройте проект по [ссылке](https://github.com/netology-code/git-2-homeworks-issues). 42 | 2. Зайдите в раздел Issues и создайте новый Issue ([пример описания](issue-example.md)). 43 | 3. Отметьте в тексте Issue пользователя `@solarrust`. 44 | 45 | **В качестве результата пришлите проверяющему ссылку на созданное вами Issue.** 46 | 47 | ### Задача №2: Первый Pull Request 48 | 49 | В один день вам в голову пришла мысль поучаствовать в развитии Open Source проекта. Среди задач (issues) в этом проекте есть та, что вам как раз по силам. Нужно просто вставить пару строк в файл README.md. 50 | 51 | 1. Сделайте форк репозитория [по ссылке](https://github.com/netology-code/git-2-homeworks-pr). 52 | 2. Внесите изменения в проект согласно описанию в [Issue](https://github.com/netology-code/git-2-homeworks-pr/issues/1). 53 | 3. Создайте Pull Request ваших изменений в репозиторий Нетологии (ссылка в первом пункте текущего задания). 54 | 55 | **В качестве результата пришлите проверяющему ссылку на ваш Pull Request.** 56 | 57 | ### Задача №3: Публикация проекта на GitHub Pages 58 | 59 | Пришло время начать собирать собственное портфолио. Вы решили пока не тратить деньги на покупку хостинга и домена, а воспользоваться GitHub Pages. Начнём с малого и создадим файл, в котором вы раскажете немного о себе, а потом опубликуем этот файл. Получится целый сайт! 60 | 61 | 1. Создайте на компьютере локальный репозиторий с любым названием. 62 | 2. Внутри папки репозитория создайте файл `README.md`. Внутри напишите любую информацию о себе, добавьте фото. Используйте возможности Markdown по полной. Не забывайте пользовать предпросмотром в редакторе. 63 | 3. Откройте терминал для этой папки и создайте коммит с изменениями. 64 | 4. Создайте новый пустой публичный репозиторий на GitHub. 65 | 5. Свяжите локальный репозиторий с новым удалённым. 66 | 6. Отправьте коммит(-ы) в удалённый репозиторий. 67 | 7. В репозитории на GitHub перейдите на вкладку Settings, в боковой колонке найдите пункт Pages. 68 | 8. Опубликуйте ваш репозиторий на GitHub Pages. _По желанию изучите другие возможности этой функции._ 69 | 70 | **Подсказка про настройку темы**: GitHub изменил интерфейс и убрал кнопку настройки темы со страницы публикации. Для получения зачёта по этой задаче настраивать тему **не нужно**. Если будет желание разобраться в этом вопросе, то можете изучить [инструкцию по ссылке](https://docs.github.com/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll). 71 | 72 | **В качестве результата пришлите проверяющему ссылку на опубликованный сайт.** 73 | -------------------------------------------------------------------------------- /team-2/issue-example.md: -------------------------------------------------------------------------------- 1 | # Описание проблемы 2 | 3 | #### Главная страница. Текстовый блок "Воспользуйтесь современными возможностями..." наезжает на изображение 4 | 5 | #### Шаги по воспроизведению 6 | 7 | 1. Открыть главную страницу веб-сайта NeuroStartUp в мобильном браузере Chrome 8 | 2. Пролистать страницу до блока "Воспользуйтесь современными возможностями..." 9 | 10 | #### Ожидаемый результат 11 | 12 | Текст не наезжает на изображение 13 | 14 | #### Фактический результат 15 | 16 | Текст наезжает на изображение (см. скриншот) 17 | 18 | #### Программное окружение 19 | 20 | * Устройство: iPhone 8+ (iOS 12.1) 21 | * Браузер: Chrome (70.0.3538.75) 22 | 23 | #### Скриншоты 24 | 25 | ![](https://i.imgur.com/HJ1VbMj.png) -------------------------------------------------------------------------------- /team/README.md: -------------------------------------------------------------------------------- 1 | # Домашнее задание к лекции «Командная работа в Git & GitHub» 2 | 3 | _Примерное время выполнения: 30 минут_ 4 | 5 | Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу. 6 | **Пожалуйста, не прикладывайте никакие файлы, в том числе на Google Диск или Яндекс.Диск.** 7 | 8 | 9 | _______ 10 | 11 | ## Цели задания: 12 | 13 | Научиться работать над командным проектом через Git & GitHub, а именно: 14 | 15 | 1. Настраивать игнорирование части файлов при публикации проекта 16 | 2. Откатывать изменения, внесенные другим участником 17 | 3. Отправлять изменения в проект и решать конфликты во время слияния 18 | 19 | Данная практика поможет вам прокачать базовые навыки командной работы в Git & GitHub. Это профессиональный стандарт в сфере IT, ведь большая часть разработки ведется именно в группе. 20 | 21 | ## Чек-лист готовности к выполнению домашнему заданию: 22 | 23 | - [ ] Установите Git на своем локальном компьютере 24 | - [ ] Создайте профиль на GitHub 25 | - [ ] Настройте SSH-ключ 26 | - [ ] Просмотрите видео к занятию «Командная работа в Git & GitHub» 27 | - [ ] Изучите презентацию к занятию «Командная работа в Git & GitHub» 28 | 29 | ---------------------- 30 | 31 | ## Инструкция к заданию 32 | 33 | ### Задача №1: Импорт существующего проекта 34 | 35 | Вам предоставили исходники лендинга, но в виде zip-архива. Вам нужно перенести их в систему контроля версий Git и опубликовать на GitHub. Обратите внимание, что в архиве есть мусорные файлы и системные файлы (папка `tmp`, файлы, заканчивающиеся суффиксами `_old`, `_backup`, `Thumbs.db` и `.DS_Store`) и их нужно проигнорировать, так как в противном случае получится, что вы храните ненужные файлы. 36 | 37 | 1. Скачайте [по ссылке](https://github.com/netology-code/git-2-homeworks/raw/main/team/src/landing.zip) архив с проектом. 38 | 2. Распакуйте из него папку _Site For Import_. 39 | _В архиве также лежит скрытая папка `__MACOSX`, она не нужна для работы. Удалите эту папку с вашего компьютера._ 40 | 3. Создайте на базе папки _Site For Import_ Git-репозиторий. 41 | 4. Проигнорируйте подкаталог `tmp/` и файлы, заканчивающиеся суффиксами `_old`, `_backup`. Любые символы можно заменить символом звёздочка `*`. 42 | 5. Добейтесь чтобы также были проигнорированы файлы `Thumbs.db` и `.DS_Store`. 43 | 6. При помощи команды `git status` убедитесь, что Git не видит ненужные файлы. 44 | 7. Добавьте в индекс все файлы проекта, включая `.gitignore`. Создайте коммит изменений. 45 | 8. Создайте отдельный репозиторий на GitHub. 46 | 9. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. Используйте в качестве кодового слова для связи с удалённым репозиторием `origin`. 47 | 10. Отправьте сделанные вами изменения на GitHub. 48 | 49 | **В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.** 50 | 51 | ### Задача №2: Откат изменений 52 | 53 | Один из ваших коллег во время работы над сайтом допустил ряд ошибок и залил всё вместе с ошибками в репозиторий на GitHub. Вам нужно отменить его последний коммит и исправить ситуацию. 54 | 55 | 1. Склонируйте Git-репозиторий [по ссылке](https://github.com/netology-code/git-2-homeworks-revert.git). 56 | 2. Отмените один последний коммит в проекте при помощи команды `git revert`. 57 | 3. Создайте отдельный репозиторий на GitHub. 58 | 4. Свяжите ваш локальный репозиторий с только что созданным удалённым репозиторием. При связывании используйте кодовое слово `target` поскольку стандартное кодовое слово `origin` уже занято. 59 | 5. Отправьте сделанные вами изменения на GitHub. 60 | 61 | **В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.** 62 | 63 | ### Задача №3: Конфликт при push'е 64 | 65 | Вы с коллегой вдвоём работаете над одним проектом. Вы доделали свою часть работы и пытаетесь запушить изменения в удалённый репозиторий. Но оказалось, что коллега изменил тот же файл раньше вас и уже отправил свой коммит. Вам нужно _забрать_ изменения из удалённого репозитория, разрешить конфликт и всё же отправить свою часть работы на GitHub. 66 | 67 | 1. Сделайте форк репозитория [по ссылке](https://github.com/netology-code/git-2-homeworks-fork). 68 | 2. Скачайте [архив изменений](https://github.com/netology-code/git-2-homeworks/raw/main/team/src/archive.zip). Распакуйте из него папку _git-2-homeworks-fork_. 69 | 3. Свяжите локальный репозиторий из архива с форком репозитория из п.1. 70 | 4. Выполните команду `git push -u origin main`, прочитайте сообщение об ошибке отправки изменений. 71 | 5. Заберите актуальную версию данных из удалённого репозитория при помощи команды `git pull origin main`. 72 | 6. Разрешите появившийся конфликт и отправьте сделанные вами изменения на GitHub. 73 | 74 | **В качестве результата пришлите проверяющему ссылку на ваш репозиторий на GitHub.** 75 | -------------------------------------------------------------------------------- /team/src/archive.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netology-code/git-2-homeworks/248ba37a304958e7e238f1bbc1ba393b46a1864b/team/src/archive.zip -------------------------------------------------------------------------------- /team/src/landing.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netology-code/git-2-homeworks/248ba37a304958e7e238f1bbc1ba393b46a1864b/team/src/landing.zip --------------------------------------------------------------------------------