Лабораторная работа №1. Организация работы в различных системах управления базами данных. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа №1. Организация работы в различных системах управления базами данных.



ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Методические указания к лабораторным работам

Казань 2021

Составитель преподаватель СПО ИКТЗИ Исламова Ляйсан Марсовна

 

Методические указания к лабораторным работам по дисциплине «ИНФОРМАЦИОНННЫЕ ТЕХНОЛОГИИ» предназначены для студентов направления подготовки 10.02.05 «Обеспечение информационной безопасности автоматизированных систем»

 

КНИТУ-КАИ, 2021

Оглавление

Лабораторная работа №1. Организация работы в различных системах управления базами данных. 4

Лабораторная работа №2. Работа в пакете программ Cisco Packet Tracer. 15

Лабораторная работа №3. Работа в Microsoft Visio. 30

Лабораторная работа №4. Работа в Adobe Photoshop. 38

Лабораторная работа №5. Изучение возможностей редакторов кода. 57

Лабораторная работа №6. Работа с системой контроля версий Git. 72

Лабораторная работа №7. Анализ сетевого трафика с использованием среды Wireshark. 107

Лабораторная работа №8. Выявление недостатков в программном средстве. 115

 


 

Лабораторная работа №2. Работа в пакете программ Cisco Packet Tracer.

Цель работы: работа в пакете программ Cisco Packet Tracer для эмуляции работы компьютерных сетей, ознакомление с данной средой.

Cisco Packet Tracer – это эмулятор сети, созданный компанией Cisco.

Что такое Cisco?

Cisco является всемирно известным разработчиком и производителем сетевого оборудования. Эта американская компания стремится представить полный спектр сетевого оборудования, и таким образом предоставить возможность клиенту закупить абсолютно всё необходимое сетевое оборудование исключительно у Cisco Systems.

Сетевая Академия Cisco – это мировая образовательная программа, обучающая проектировать, создавать, отлаживать и защищать компьютерные сети. Экзамены в Академии сдаются для получения сертификата Cisco. Все сертификаты Cisco делятся на три уровня:

· Специалист: сертификаты CCENT, CCNA, CCDA

· Профессионал: сертификаты CCNP, CCDP

· Эксперт: сертификаты CCIE

Обучение новичков начинается с CCNA Cisco Certified Network Associate). Сертификат CCNA подтверждает ваше умение установки, настройки, эксплуатации и устранения неисправностей сетевого оборудования Cisco.

Введение в программу Cisco Packet Tracer (CPT)

Cisco Packet Tracer – это эмулятор сети, созданный компанией Cisco. Программа позволяет строить и анализировать сети на разнообразном оборудовании в произвольных топологиях с поддержкой разных протоколов. В ней вы получаете возможность изучать работу различных сетевых устройств: маршрутизаторов, коммутаторов, точек беспроводного доступа, персональных компьютеров, сетевых принтеров и т.д. Данное приложение является наиболее простым и эффективным среди своих конкурентов. Так, например, создание нового проекта сети в Cisco Packet Tracer занимает существенно меньше времени, чем в аналогичной программе - GNS3, Packet Tracer проще в установке и настройке.


Рис. 1 Логотип программы CPT

Главное меню

Главное меню показано на рис. 3.


Рис. 3 Главное меню

File (Файл) - содержит операции открытия/сохранения документов.

Edit (Правка) - содержит стандартные операции "копировать/вырезать, отменить/повторить";

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

View (Вид) - содержит инструменты изменения масштаба рабочей области и панели инструментов;

Tools (Инструменты) - содержит цветовую палитру и окно пользовательских устройств;

Exensions (Расширения) - содержит мастер проектов и ряд других инструментов;

Help (Помощь)–содержит помощь по программе.

Панель инструментов

Панель инструментов приведена на рис. 4.


Рис. 4 Панель инструментов

Панель инструментов с помощью пиктограмм дублирует основные пункты главного меню программы.

Оборудование

Снизу, под рабочей областью, расположена панель оборудования. Данная панель содержит в своей левой части типы (классы) устройств, а в правой части – их наименование (модели). При наведении на каждое из устройств, в прямоугольнике, находящемся в центре между ними будет отображаться его тип. Типы оборудования представлены на рис. 5.


Рис. 5 Панель оборудования Packet Tracer (Основные типы оборудования)

Маршрутизаторы (роутеры) используется для поиска оптимального маршрута передачи данных на основании алгоритмов маршрутизации. Коммутаторы - устройства, предназначенные для объединения нескольких узлов в пределах одного или нескольких сегментах сети. Коммутатор (свитч)передаёт пакеты информации на основании таблицы коммутации, поэтому трафик идёт только на тот MAC-адрес, которому он предназначается, а не повторяется на всех портах, как на концентраторе (хабе). Беспроводные устройства в программе представлены беспроводным маршрутизатором и тремя точками доступа. Среди конечных устройств вы увидите ПК, ноутбук, сервер, принтер, телефоны и так далее. Интернет в программе представлен в виде облаков и модемов DSL. Пользовательские устройства и облако для многопользовательской работы показаны на рис. 6.


Рис. 6 Пользовательские устройства и облако для многопользовательской работы

Линии связи

С помощью линий связи создаются соединения узлов сети в единую топологию и при этом каждый тип кабеля может быть соединен лишь с определенными типами интерфейсов устройств (рис. 7).


Рис. 7 Типы линий связи

Автоматический тип – при данном типе соединения Packet Tracer автоматически выбирает наиболее предпочтительные тип соединения для выбранных устройств.

Консоль – консольные соединение. Консольное соединение может быть выполнено между ПК и маршрутизаторами или коммутаторами.

Медь прямой – соединение медным кабелем типа витая пара, оба конца кабеля обжаты в одинаковой раскладке.

Медь кроссовер – соединение медным кабелем типа витая пара, концы кабеля обжаты как кроссовер.

Оптика – соединение при помощи оптического кабеля, необходимо для соединения устройств, имеющих оптические интерфейсы.

Телефонный кабель – кабель для подключения телефонных аппаратов. Соединение через телефонную линию может быть осуществлено между устройствами, имеющими модемные порты. Пример - ПК, дозванивающийся в сетевое облако.

Коаксиальный кабель – соединение устройств с помощью коаксиального кабеля. Используется для соединения между кабельным модемом и облаком.

Серийный DCE и серийный DTE - соединения через последовательные порты для связей Интернет. Для настройки таких соединений необходимо установить синхронизацию на стороне DCE-устройства. Сторону DCE можно определить по маленькой иконке "часов" рядом с портом.

Графическое меню

На рис. 8 показано графическое меню программы.


Рис. 8 Графическое меню (повернуто)

На этом рисунке слева направо:

Инструмент Select (Выбрать) можно активировать клавишей Esc. Он используется для выделения одного или более объектов для дальнейшего их перемещения, копирования или удаления.

Инструмент Move Layout (Переместить слой, горячая клавиша M) используется для прокрутки больших проектов сетей.

Инструмент Place Note (Сделать пометку, клавиша N) добавляет текст в рабочей области проекта.

Инструмент Delete (Удалить, клавиша Del) удаляет выделенный объект или группу объектов.

Инструмент Inspect (Проверка, клавиша I) позволяет, в зависимости от типа устройства, просматривать содержимое таблиц (ARP, NAT, таблицы маршрутизациии др.).

Инструмент Drawapolygon (Нарисовать многоугольник) позволяет рисовать прямоугольники, эллипсы, линии и закрашивать их цветом.

Инструмент Resize Shape (Изменить размер формы, комбинация клавиш Alt+R) предназначен для изменения размеров рисованных объектов (четырехугольников и окружностей).

Создание блок-схемы

1. Запустите редактор Microsoft Visio.

2. В открывшемся окне в списке Категория шаблоноввыберите пункт Блок- схема, далее выберите шаблон Простая блок-схема. Нажмите кнопку Создать.

3. Создайте блок- схему. При этом придерживайтесь следующих настроек:

· шрифт заголовка – Arial, 18 пт;

· шрифт элементов – Arial, 14 пт;

· наименования продуктов выделить полужирным шрифтом.

· толщина линий и контуров – 5;

· элементы одноименных операций должны быть залиты одним цветом с про зрачностью 40%.

Рекомендации при построении блок-схемы:

3.1. В качестве прямоугольников удобно использовать фигуру Процессиз набора

Фигуры простой блок-схемы.

3.2. Для соединения используйте инструмент Соединительная линия  со стандартной панели инструментов. Для удобства соединения на фигурах Процессесть точки соединения. Точка соединения представляет собой значок «×» синего цвета.

3.3. Текст форматируется с помощью команды Формат → Текст…или с помощью  соответствующих команд на стандартной панели инструментов.

3.4. Для добавления текстового блока выберите инструмент Текст  на стандартной панели инструментов, щелкните левой кнопкой мыши на нужном месте и введите текст. После завершения ввода текстовый блок можно редактировать путем выделения его инструментом Указатель.

3.5. Для добавления текста в готовую фигуру необходимо дважды щелкнуть на ней левой кнопкой мыши. После завершения ввода текст в фигуре также можно редактировать. Для этого достаточно выделить двойным щелчком фигуру с помощью инструмента Указатель.

Схема приготовления фарша капустного с морковью и шампиньонами:

Рис. 1 Пример блок-схемы

Схема проведения экспертизы:

Рис. 2 Пример блок-схемы

Создание плана помещения

1. Создайте новый документ Файл → Создать → Приступая к работе… Выберите категорию Карты и планы этажей, шаблон План рабочих мест. Нажмите кнопку Создать.

2. Используя фигуры данного шаблона создайте план реального или воображаемого офисного помещения с расстановкой мебели и оборудования в масштабе 1:50(установлен по умолчанию).

Для контроля размеров используйте инструмент Управляемый размер, находящийся в трафарете Стены, Двери и Окна.

3. Поместите над планом его название План помещения. Масштаб 1:50.

 


Подсветка синтаксиса

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

Рис.1 Подсветка синтаксиса.

Автоматические отступы

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

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

Рис.2 Автоматические отступы.

Автодополнение

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

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

Рис.3 Автодополнение.

Разделение рабочей области

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

Рис. 4 Разделение рабочей области.

Мини-карта

Для удобной навигации в документе можно использовать миникарту. Обычно она находится в правой колонке и отображает структуру файла. При нажатии на миникарту отобразится нужная часть документа.

Внешний вид

Для тех, кто любит настраивать инструмент под себя, в настройках есть множество регулировок: можно изменять размер шрифта, цветовые схемы, правила переноса текста и многое другое. Это поможет сделать процесс разработки ещё комфортнее.

Проекты

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

Для разных редакторов выделение проектов даёт дополнительные возможности. К примеру, если создать проект в WebStorm, то программа считает всё содержимое директорией проекта. После анализа редактор будет выдавать подсказки, например, что ссылка ведёт на несуществующий файл.

Рис. 5 Проекты в редакторе.

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

Интеграция приложений

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

Обогатить функциональность можно через добавление плагинов. Рассмотрим некоторые подобные возможности.

Система контроля версий

Работать с системой контроля версий для разработчика — обычное дело. Часто все команды прописываются и выполняются через консоль. Для ускорения процесса разработки часть рутинных операций, такие как push, pull, commit и другие можно выполнять через редактор.

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

Рис. 6 Изменения.

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

Рис. 7 История изменений.

К примеру, через Atom или WebStorm можно сделать commit изменений, выполнить push в удалённый репозиторий и после создать pull request в сервисе GitHub. И все эти действия делаются в рамках редактора.

Рис. 8 Возможности редактора при работе с Git.

Emmet

Во многие редакторы по умолчанию встроен плагин emmet. С его помощью можно из короткой строки развернуть большой кусок кода.

Рис. 9 Emmet.

Используя подобную технику можно в разы ускорить написание разметки.

Консоль

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

Рис. 10 Консоль.

Дебаггер

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

Рис. 11 Отладчик.

Библиотека плагинов

Какая-то часть из вышеперечисленного по умолчанию встроена в редакторы, а какую-то нужно добавлять, устанавливая плагины. У всех программ есть возможность интегрировать плагины непосредственно в среду разработки.

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

Горячие клавиши

Практически для всех действий в редакторах есть горячие клавиши. Знание этих комбинаций повышает скорость разработки. Стоит их изучить, хотя бы для того, чтобы понять, какие ещё возможности даёт редактор.

Sublime Text 3

Расширения для редактора

Для Sublime Text 3 написано множество пакетов, которые делают работу в редакторе более комфортной. Далее рассмотрим ряд таких расширений и посмотрим, как их устанавливать в программу.

Для того чтобы добавить пакет, нужно открыть интерфейс для ввода команд. Сделать это можно через пункт меню Tools → Command Palette или вводом горячих клавиш command (control) + shift + p. После этого в интерфейсе для ввода команд нужно выбрать пункт Package Control: Install Package

После этого программа покажет список пакетов. Здесь можно выбрать и установить нужный пакет. Посмотреть подробное описание каждого расширения для Sublime Text 3 можно на сайте Package Control.

Рис. 13 Установка расширений в Sublime Text 3.

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

Ускоряющие разработку:

· Emmet. Плагин, ускоряющий написание разметки и стилей.

· BracketHighlighter. Дополнительно добавляет подсветку границ скобок, элементов и прочего. Помогает лучше ориентироваться в коде.

Добавляющие функциональность:

· SideBarEnchacements. Увеличивает количество действий, которое можно сделать в боковой панели при работе с файлами и папками.

· Sublime​Code​Intel. Делает редактор «умнее». Добавляет автодополнение для разных языков и другие полезные возможности.

· Git и GitGutter. Добавляют интеграцию с системой контроля версий Git в редактор.

· EditorConfig. Полезный пакет для настройки параметров редактора.

Проверяющие синтаксис:

Сперва для редактора следует установить пакет SublimeLinter. Также на компьютере должен быть установлен Node.js. После этого нужно установить интересующие плагины для проверки. В большинстве они называются SublimeLinter-нужный пакет. Например:

· SublimeLinter-eslint. Проверяет JavaScript-код. Для работы нужно глобально установить npm-пакет eslint.

· SublimeLinter-stylelint. Проверяет CSS. Для работы нужно глобально установить npm-пакеты: postcss и stylelint.

Изменяющие внешний вид:

Если недостаточно стандартных встроенных тем, то можно установить дополнительные. Примеры тем можно посмотреть на официальном сайте.

Atom

Продукт, произведённый командой GitHub Inc. Приятный на вид, кроссплатформенный бесплатный редактор. Имеет встроенную интеграцию с Git и GitHub.

Расширения для редактора

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

Рис. 14 Установка расширений в Atom.

Список популярных расширений можно посмотреть на официальном сайте.

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

Ускоряющие разработку:

· Emmet. Плагин, ускоряющий написание разметки и стилей.

Добавляющие функциональность:

· Minimap. Добавляет поддержку миникарты в Atom.

· PlatformIO IDE Terminal. Встраивает терминал в редактор.

· Atom-Beautify. Форматирует текст по заданным настройкам и приводит его к единообразию.

· Editorconfig. Полезный пакет для настройки параметров редактора.

Проверяющие синтаксис:

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

· linter-eslint. Проверяет JavaScript-код.

· linter-stylelint. Проверяет CSS.

Изменяющие внешний вид:

· File Icons — заменяет стандартные иконки файлов.

· Кастомные темы для Atom на официальном сайте.

Visual Studio Code

Бесплатный кроссплатформенный редактор компании Microsoft. Является одним из самых популярных редакторов на данный момент.

В базовой версии есть интеграция с Git и режим отладки кода. Поддерживает, в том числе и через дополнения, большое количество языков.

Обзор редактора VS Code

Расширения для редактора

VS Code в базовой версии содержит большое количество плагинов. К примеру, консоль, emmet и мини-карта в нём присутствуют с самого начала. Добавить новые пакеты можно через интерфейс программы. Для этого во вкладке активного меню нужно выбрать пункт extensions и в поле ввода ввести интересующий плагин. После этого его можно установить.

Рис. 15 Установка расширений в VS code.

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

Добавляющие функциональность:

· Для удобной работы с системой контроля версий Git можно добавить плагины Git History и GitLens.

· Project Manager — добавляет редактору возможность работать с несколькими проектами.

· Settings Sync — синхронизирует настройки и установленные плагины между программами на разных компьютерах.

· Beautify — форматирует текст по заданным настройкам и приводит его к единообразию.

Проверяющие синтаксис:

· ESLint — проверяет JavaScript код по заданным параметрам.

Изменяющие внешний вид:

· Vscode-icons — заменяет стандартные иконки файлов.

· Посмотреть на кастомные темы для Vscode можно на официальном сайте.

WebStorm

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

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

Расширения для редактора

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

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

Рис. 16 Установка расширений в WebStorm.

Установить новые можно через пункт Install Jetbrains plugin. Из интересных можно выделить:

· Editorconfig;

· LiveEdit.

Задание на лабораторную работу: Рассмотреть первые три редактора кода. Выявить у каждого из них преимущества и недостатки.


Установка Git

Установка для Windows

Как обычно, нужно скачать exe файл и запустить его. Здесь все просто: жмем на первую ссылку Google, устанавливаем и всё. Для работы будем использовать bash консоль, которую они предоставляют.

Чтобы работать, нужно запустить Git Bash. Вот как он выглядит в меню пуск:

И это уже консоль, в которой можно работать. Чтобы не переходить каждый раз в папку с проектом, чтобы там открыть гит, можно в папке правой кнопкой мыши открыть консоль с нужным нам путем:

Установка для Linux

Обычно git уже установлен и есть в дистрибутивах линукса, так как это инструмент, первоначально написанный для разработки ядра линукса. Но бывают ситуации, когда его нет. Чтобы проверить это, нужно открыть терминал и прописать: git --version. Если будет вразумительный ответ, ничего устанавливать не нужно.

Открываем терминал и устанавливаем. Напишем: sudo apt-get install git. И все: теперь в любом терминале можно пользоваться гитом.

Установка на macOS

Здесь также для начала нужно проверить, есть ли уже гит. Если все же нет, самый простой путь — это скачать отсюда последнюю версию. Если установлен XCode, то гит уже точно будет автоматически установлен.

Настройка гита

У гита есть настройка пользователя, от которого будет идти работа. Это разумная и необходимая вещь, так как когда создается коммит, гит берет именно эту информацию для поля Author. Чтобы настроить имя пользователя и пароль для всех проектов, нужно прописать следующие команды:

git config --global user.name ”Ivan Ivanov”git config --global user.email ivan.ivanov@gmail.com

Если есть необходимость для конкретного проекта поменять автора (для личного проекта, например), можно убрать --global, и так получится:

git config user.name ”Ivan Ivanov”git config user.email ivan.ivanov@gmail.com

Желательно добавить в свое обращение несколько новых слов и действий…

· гит репозиторий (git repository);

· коммит (commit);

· ветка (branch);

· смерджить (merge);

· конфликты (conflicts);

· спулить (pull);

· запушить (push);

· как игнорировать какие-то файлы (.gitignore).

Состояния в Гит

У Гита есть несколько состояний, которые нужно понять и запомнить:

· неотслеживаемое (untracked);

· измененное (modified);

· подготовленное (staged);

· закомиченное (committed).

Как это понимать?

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

1. Файл, который создан и не добавлен в репозиторий, будет в состоянии untracked.

2. Делаем изменения в файлах, которые уже добавлены в гит репозиторий — находятся в состоянии modified.

3. Из тех файлов, которые мы изменили, выбираем только те (или все), которые нужны нам (например, скомпилированные классы нам не нужны), и эти классы с изменениями попадают в состояние staged.

4. Из заготовленных файлов из состояния staged создается коммит и переходит уже в гит репозиторий. После этого staged состояние — пустое. А вот modified еще может что-то содержать.

Выглядит это так:

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

Коммит — это основной объект в управлении контроля версий. Он содержит все изменения за время этого коммита. Коммиты связаны между с собой как односвязный список. А именно: Есть первый коммит. Когда создается второй коммит, то он (второй) знает, что идет после первого. И таким образом можно отследить информацию. Также у коммита есть еще своя информация, так называемые метаданные:

· уникальный идентификатор коммита, по которому можно его найти;

· имя автора коммита, который создал его;

· дата создания коммита;

· комментарий, который описывает, что было сделано во время этого коммита.

Вот как это выглядит:

Что такое ветка

Ветка — это указатель какого-то коммита. Так как коммит знает, какой коммит был до него, когда ветка указывает на какой-то коммит, к ней относятся и все те предыдущие. Исходя из этого можно сказать, что веток, указывающих на один и тот же коммит, может быть сколько угодно много. Работа происходит в ветках, поэтому, когда создается новый коммит, ветка переносит свой указатель на более новый коммит.

Начало работы с Гитом

Можно работать и только с локальный репозиторием, и с удаленным. Для отработки нужных команд можно воспользоваться только локальным репозиторием. Он хранит всю информацию только локально в проекте в папке.git. Если говорить об удаленном, то вся информация хранится где-то на удаленном сервере: локально хранится только копия проекта, изменения которой можно запушить (git push) в удаленный репозиторий.

Работа с.gitignore

Ясно, что мы хотим хранить только исходный код и ничего другого в репозитории. А что может быть еще? Как минимум, скомпилированные классы и/или файлы, которые создают среды разработки. Чтобы гит их игнорировал, есть специальный файл, который нужно создать. Делаем это: создаем файл в корне проекта с названием.gitignore, и в этом файле каждая строка будет шаблоном для игнорирования. В этом примере гит игнор будет выглядеть так:

```*.classtarget/*.iml.idea/```

Смотрим теперь:

· первая строка — это игнорирование всех файлов с расширением.class;

· вторая строка — это игнорирование папки target и всего, что она содержит;

· третья строка — это игнорирование всех файлов с расширением.iml;

· четвертая строка — это игнорирование папки.idea.

Попробуем на примере. Чтобы посмотреть как это работает, добавим скомпилированный класс GitTest.class в проект и посмотрим статус проекта:

git status

Ясно, что мы не хотим как-то случайно (если использовать git add -A) добавить скомпилированный класс в проект. Для этого создаем.gitignore файл и добавляем все, что описывалось ранее:

Теперь добавим новым коммитом гит игнор в проект:

git add.gitignoregit commit -m “added.gitignore file”

И теперь момент истины: у нас есть в untracked состоянии скомпилированный класс GitTest.class, который мы не хотели добавлять в гит репозиторий. Вот здесь-то и должен заработать гит игнор:

git status

Все чисто.

Работа с ветками

Разумеется, работать в одной ветке неудобно одному и невозможно, когда в команде больше одного человека. Для этого существует ветвление. Как я уже говорил, ветка — это просто подвижный указатель на коммиты. В этой части рассмотрим работу в разных ветках: как смерджить изменения одной ветки в другую, какие могут возникнуть конфликты и многое другое. Чтобы посмотреть список всех веток в репозитории и понять, на какой находишься, нужно написать:

git branch -a

Видно, что у нас только одна ветка master, и звездочка перед ней говорит, что мы находимся на ней. К слову, чтобы узнать, на какой ветке мы находимся, можно воспользоваться и проверкой статуса (git status). Далее есть несколько вариантов создания веток:

· создать новую ветку на основе той, на которой находимся (99% случаев);

· создать ветку на основе конкретного коммита (1%).

Размолвим конфликты

Прежде чем разобраться с тем, что такое конфликт, нужно поговорить о слиянии (смердживании) одной ветки в другую. Вот такой картинкой можно показать процесс, когда одну ветку мерджат в другую:

То есть, есть главная ветка. От нее в какой-то момент создают второстепенную, в которой происходят изменения. Как только работа сделана, нужно слить одну ветку в другую. Создаем ветку feature/update-txt-files. Как написано в имени ветки — обновим текст.

Теперь нужно создать новый коммит:

git add *.txtgit commit -m “updated txt files”git log

Теперь, если мы хотим смерджить feature/update-txt-files ветку в master, нужно перейти в master и написать git merge feature/update-txt-files:

git checkout mastergit merge feature/update-txt-filesgit log

Как результат — теперь и в мастер ветке есть коммит, который был добавлен в feature/update-txt-files. Эта функциональность добавлена, поэтому можно удалить фиче (feature) ветку. Для этого напишем:

git branch -D feature/update-txt-files

Усложняем ситуацию: теперь допустим, что опять нужно изменить txt файл. Но теперь еще и в мастере этот файл будет изменен также. То есть он будет параллельно изменяться, и гит не сможет понять, что нужно делать в ситуации, когда мы захотим смерджить в master ветку новый код. Создаем новую ветку на основе master, делаем изменения в text_resource.txt и создаем коммит под это дело:

git checkout -b feature/add-header... делаем изменения в файле

git add *.txtgit commit -m “added header to txt”

Переходим на master ветку и также обновляем этот текстовый файл в той же строке, что и фиче ветка:

git checkout master… обновили test_resource.txt

git add test_resource.txtgit commit -m “added master header to txt”

И теперь самый интересный момент: нужно смерджить изменения из feature/add-header ветки в master. Мы находимся в мастер ветке, поэтому нужно только написать:

git merge feature/add-header

Но мы получим результат с конфликтом в файле test_resource.txt:

И здесь мы можем видеть, что гит не смог самостоятельно решить, как смерджить этот код и говорит, что нужно вначале разрезолвить конфликт, а уже потом сделать коммит. Ок, открываем в текстовом редакторе файл, в котором конфликт, и видим:

Чтобы понять, что здесь сделал гит, нужно вспомнить, что мы где писали, и сравнить:

1. между “<<<<<<< HEAD” и “=======” находятся изменения мастер, которые были в этой строке в мастер ветке.

2. между “=======” и “>>>>>>> feature/add-header” находятся изменения, которые были в feature/add-header ветке.

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

Посмотрим на статус изменений, описание будет несколько другим. Будет не modified состояние, а Unmerged. Так что смело можно было добавить пятое состояние… Посмотрим:

git status

Убедились, что это другой случай, необычный. Продолжаем:

git add *.txt

В описании можно заметить, что предлагают написать только git commit. Слушаем и пишем:

git commit

И все: таким образом мы сделали это — решили конфликт в консоли.

Получение изменений:


Для получения изменений из удалённого репозитория, используется команда git fetch:

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

Для того, чтобы извлечь изменения из удалённого репозитория и применить их к текущей ветви, используется команда git pull:


В первом случае, изменения будут получены из текущего установленного удалённого репозитория для текущей ветви. Во втором случае, изменения будут получены из origin. В третьем случае, изменения будут получены из origin для ветви test.

Вы можете создать копию ветви, существующей в удалённом репозитории, используя команду: git checkout -b local_name origin/remote_name

Где local_name  имя ветви в локальном репозитории, а remote_name имя ветви в удалённом.

Отправление изменений:


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

В первом случае, изменения будут отправлены в текущий установленный удалённый репозиторий для текущей ветви. Во втором случае, изменения будут отправлены в origin. В третьем случае, изменения ветви test будут отправлены в origin.

Задания:

1. Создать репозиторий на GitHub.

2. Предоставить доступ к репозиторию ещё одному пользователю. Используя средства для работы с Git встроенные в Visual Studio 2017:

1. Создать локальный репозиторий.

2. Создать в локальном репозитории консольное приложени



Поделиться:


Последнее изменение этой страницы: 2022-01-22; просмотров: 38; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.147.190 (0.255 с.)