По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Если ты готовишься к собеседованию на позиции IT - специалиста, такие как сетевой инженер, DevOPS, системный администратор или инженер технической поддержки, то тебе определенно будет полезно пробежаться по собранному нами списку вопросов, которые буду ждать тебя при приеме на работу. Помимо вопросов, мы подготовили ответы на них. Если вы торопитесь и не хотите сильно погружаться в вопрос (например, вы проходите собеседование на должность project/product менеджера в IT) - то для вас подойдут короткие ответы. Если вы хотите глубже вникнуть в суть вопроса, под основными вопросами мы добавили ссылки на расширенные материалы по тематике. Погнали. Видео: топ 35 вопросов на собеседовании IT - спецу | Что тебя ждет и как отвечать, чтобы получить оффер? Навигация Что такое линк? Перечислите 7 уровней модели OSI. Что такое IP - адрес? Что такое LAN? Расскажите нам про DHCP А про DNS? Что такое WAN? Что означает термин "нода"? Что такое "хост"? Какая максимальная длина кабеля UTP? Что такое маршрутизатор? Что такое коммутатор? В чем разница между роутером, свичем и хабом? 3 уровня иерархии сетей от Cisco? Что такое VLAN и зачем они нужны? Что такое PING? Какие режимы передачи данных бывают? Что такое Ethernet? Что такое VPN? Что такое MAC - адрес? Что такое TCP и UDP? В чем разница между ними? Что такое NIC? Зачем нужен прокси сервер? Какие типы сетевых атак вы знаете? Что такое NAT? Объявление А знаете ли вы про MST (Multiple Spanning Tree)? А про RSTP (Rapid Spanning Tree) что скажете? А про протокол RIP что скажете? Расскажите нам про EIGRP, а мы послушаем Ого, кажется у вас неплохой опыт. А что скажете про BGP? Так, продолжайте про OSPF? Что такое VTP? Что думаете про модный SD WAN? Пару слов про MPLS? И пару слов про шифрование трафика. Какие алгоритмы вам знакомы? В сетях вы разбираетесь. Поговорим про телефонию. Какие кодеки вам знакомы? А разницу между FXS и FXO портом знаете? А что по вашему лучше - SIP или PRI? Зачем нужен протокол RTP? А термин SBC вам знаком? И последний вопрос. Про SDP знаете? Итоги Что такое линк? Линк это соединение между двумя сетевыми устройствами. По смыслу, термин включает в себя как тип соединительной линии (кабеля), так и протоколы, которые работают на этому линке. Перечислите 7 уровней модели OSI. Очень частый и важный вопрос. Уровни снизу вверх: Физический (Physical) Канальный (Data Link) Сетевой (Network) Транспортный (Transport) Сеансовый (Session) Представления (Presentation) Приложений (Application) Подробно почитать про модель OSI и посмотреть веселый поучительный ролик Что такое IP - адрес? Уникальный внутри подсети идентификатор устройства третьего уровня модели OSI. Сейчас его больше всего четвертой версии, но мир идет в сторону IPv6 (шестая версия). Детально про IP - адрес мы написали тут и сняли видео. Что такое LAN? LAN (Local Area Network) или локальная вычислительная сеть - локалка. Это сеть между компьютерами и другими сетевыми устройствами, которые расположены в одном и том же (небольшом) месте. Для подробностей от том, что такое LAN и чем он отличается от WAN почитайте нашу статью. Расскажите нам про DHCP DHCP (Dynamic Host Configuration Protocol). Протокол конфигурации для IP - адресов. Например, DHCP сервер раздает адреса в подсети, отвечая на запросы, а DHCP клиента запрашивает. Очень много полезной информации про DHCP тут А про DNS? DNS - Domain Name System.Это система доменных имен. Когда я открыл сайт hh.ru, чтобы откликнуться на вакансию вашей компании, мой ноутбук отправил запрос на DNS сервер, который преобразовал имя сайта в IP - адрес. И вот я здесь. Чтобы узнать больше деталей про DNS сервер перейдите к статье. Что такое WAN? WAN (Wide Area Network) - это глобальная вычислительная сеть, которая не ограничена географической локацией - квартира, этаж или здание. Отличный пример WAN сети - интернет, через который вы сейчас читаете эту статью. Что означает термин "нода"? Что такое "хост"? Как правило, в сетях, нодой или хостом называют некий сетевой узел. Так, маршрутизатор, коммутатор и даже компьютер может быть назван "нодой" и "хостом". Какая максимальная длина кабеля UTP? Одно плечо кабеля работает на дистанции до 100 метров. Потом нужен репитер или коммутатор. Что такое маршрутизатор? Маршрутизатор (роутер, так как это одно и то же) это устройство третьего уровня модели OSI, которое маршрутизирует IP - пакеты между подсетями. Маршрутизатор запоминает таблицы маршрутизации, дистанцию до других подсетей, узкие места и прочие параметры. Что такое коммутатор? Коммутатор (или как его называют свич) - устройство, которое работает на втором уровне модели OSI. Свич оперирует с MAC - адресами и в корпоративных сетях именно в него подключаются оконечные устройства (компьютеры, МФУ и прочее). В чем разница между роутером, свичем и хабом? Роутер работает на третьем уровне модели OSI, свич на втором, хаб на первом. А еще хабы уже не используют, ибо они туповат. Будьте смелыми и попробуйте так и сказать на собеседовании - "туповаты", а потом напишите нам в комментариях, прошли ли вы успешно собеседование. По нашим наблюдениям, чем проще умеет выражаться IT - специалист, тем проще и лучше всем. Но перед тем как говорить как мы подсказываем выше, будьте уверены в своих знаниях темы и почитайте и посмотрите подробное видео о том, в чем разница между роутером, свичем и хабом? 3 уровня иерархии сетей от Cisco? Изи. Уровень доступа (access layer), уровень распределения (distribution layer) и уровень ядра (core layer). Почитайте по иерархическую Cisco модель в деталях. Это важно. Что такое VLAN и зачем они нужны? VLAN (Virtual Local Area Network), или так называемые виртуальные локальные сети, которые позволяют на на одном физическом порту роутера создать несколько виртуальных локальных сетей сразу. Это экономия портов и красивый дизайн сети. За подробностями про VLAN милости просим по ссылке. Что такое PING? Это самый базовый инструмент инженера, который позволяет понять ""А жив ли хост?". Работает по протоколу ICMP. Какие режимы передачи данных бывают? симплексный полудуплексный полнодуплексный Подробности можно найти про симплекс, дуплекс и полудуплекс можно найти тут. Что такое Ethernet? Ethernet - стандарт, описывающий подключение к локальным сетям через кабель (различные кабели). Существуют различные стандарты Ethernet, отличающиеся по скорости работы. Вот тут мы рассказываем про Ethernet детально и на пальцах Что такое VPN? VPN позволяет установить виртуальное защищенное соединение, которое называют туннелем, между вашим устройством, или даже целой сетью и другим удаленным устройством, или же - другой удаленной сетью Немного расслабиться и посмотреть короткое анимационное видео про VPN можно по ссылке. Что такое MAC - адрес? Уникальный идентификатор устройства на втором уровне модели OSI. С MAC - адресами работают коммутаторы Очень подробно про mac - адресу мы написали тут. Что такое TCP и UDP? В чем разница между ними? Оба термина относятся к транспортному уровню модели OSI и является транспортными протоколами. TCP - надежный и проверяет доставку - подходит для чувствительного к потерям трафика, а UDP допускает потерю данных. Если нужны подробности - потрясающее видео про TCP и UDP и статья доступны по ссылке Что такое NIC? NIC это Network Interface Card. Это ни что иное как сетевая карта устройства. Зачем нужен прокси сервер? Прокси (proxy) сервер - это элемент сетевой инфраструктуры, который выполняет роль посредника между клиентским компьютером (терминал, браузер, приложение), находящимся во внутренней сети и другим сервером, который живёт во внешней сети или наоборот. Прыгайте за подробным чтивом про прокси вот сюда. Какие типы сетевых атак вы знаете? DoS, DDoS, фишинг или Bruteforce. Есть еще "злое" ПО, такое как: бэкдоры (Backdoor), майнеры (Miner), банкеры (Bank, шпионские программы (Spyware), рекламное ПО (Adware), руткиты (Rootkit). Веселое видео и подробная статья про сетевые угрозы ждет вас тут. Что такое NAT? NAT технология позволяет множеству внутренних устройств с внутренним IP - адресом выходить в интернет под внешними IP - адресами и получать пакеты обратно на внутренний IP - адрес. Технология богатая. Вот тут можно погрузиться в теорию про NAT. Объявление На текущем этапе мы перебрали базовые термины, которых будет достаточно не инженеру (проджекту или продакту, как мы сказали в начале статьи). Сейчас мы начнем "лупить" из тяжелой артиллерии: углубимся в сетевые стандарты и протоколы. Все, что будет дальше, пригодится именно технарям. А знаете ли вы про MST (Multiple Spanning Tree)? Да, знаю. Это третья вариация алгоритмов связующего дерева и он обеспечивает отсутствие петель и широковещательного шторма. Основная идея MST в так называемых множественных связующих деревьях. Классика. Подробности работы MST (Multiple Spanning Tree) вы найдете тут. А про RSTP (Rapid Spanning Tree) что скажете? Скажу. С развитием протоколов маршрутизации, классический STP перестал "вывозить". Он просто не такой быстрый. Поэтому, на его смены пришел быстрый RSTP. Почитать про быстрый STP можно в нашей статье. А про протокол RIP что скажете? Рест ин пис RIPv1 и да здравствует RIPv2. Это протокол маршрутизации, который хранит информацию о маршрутизации и сетевых путях. Сетевой путь - это простой фрагмент информации, который говорит, какая сеть подключена к какому интерфейсу маршрутизатора. Ах да. Про разницу RIPv1 и RIPv2 можно почитать тут. А про детали работы протокола RIP информации много здесь. Расскажите нам про EIGRP, а мы послушаем Устраивайтесь поудобнее. EIGRP это проприетарный протокол компании Cisco Systems. Если быть точным, то Enhanced Interior Gateway Routing Protocol это протокол "внутреннего шлюза". У EIGRP высокий показатель масштабируемости и высокая скорость сходимости сети. Вот такой ответ. Но, мы рекомендуем вам погрузиться в EIGRP. У нас на этот счет есть целый цикл статей из 7 частей про EIGRP. Информации там очень много, но после прочтения статьи вероятность того, что вам зададут вопрос про EIGRP, на который вы не будете знать ответа - минимальна. Ого, кажется у вас неплохой опыт. А что скажете про BGP? На BGP возложена великая задача - соединение автономных систем во всем Интернете. А, я не сказал про то, что такое автономная системы - это совокупность точек маршрутизации и связей между ними, объединенная общей политикой взаимодействия, которая позволяет этой системе обмениваться данными с узлами, находящимися за ее пределами. Мы не лыком шиты. Цикл из 5 статей по BGP вас ждет по ссылке. Так, продолжайте про OSPF? OSPF (Open Shortest Path First) - протокол внутренней маршрутизации с учетом состояния каналов (Interior gateway protocol, IGP). Как правило, данный протокол маршрутизации начинает использоваться тогда, когда протокола RIP уже не хватает по причине усложнения сети и необходимости в её легком масштабировании. Хотите углубиться в OSPF? Вот вам цикл статей: Протокол маршрутизации OSPF: LSA, области и виртуальные ссылки Расширенные возможности OSPF: Области OSPF: создание конкретных типов областей Ручная фильтрация маршрутов OSPF Что такое VTP? Думаю вы имеет ввиду VLAN Trunking Protocol, который создан для того, чтобы передавать информацию о VLAN между коммутаторами. Детально про VPT Что думаете про модный SD WAN? Software Defined Wide Area Network определенно интересны, так как помогают серьезно сэкономить на каналах передачи данных, не теряя качества, а также ускорить включение в общую сеть организации новых территориально удаленных филиалов. SD WAN по полочкам. Пару слов про MPLS? MPLS (Multiprotocol label switching) является протоколом для ускорения и формирования потоков сетевого трафика, что, по сути, означает сортировку MPLS и расстановку приоритетов в пакетах данных на основе их класс обслуживания (например, IP-телефон, видео или транзакции, например). И пару слов про шифрование трафика. Какие алгоритмы вам знакомы? Существуют алгоритмы 3DES, Triple DES, AES. А, кстати, в России популярны "Магма" и "Кузнечик". Почитайте про типы шифрования в России и зарубежом В сетях вы разбираетесь. Поговорим про телефонию. Какие кодеки вам знакомы? Кодеков не мало. Но на моем опыте, наибольшей популярностью пользуются G.711 и G.729. Причем 711 используется внутри сетей и его полоса 64 кбит/с, а 729 снаружи для экономии полосы пропускания - он занимает только 8 кбит/с. Про телефонные кодеки все, что нужно знать А разницу между FXS и FXO портом знаете? Конечно. FXS - для подключения аналоговой телефонного аппарата. FXO - для подключения аналоговой телефонной линии. Глубинное погружение в разницу между FXO и FXS на кейсах А что по вашему лучше - SIP или PRI? Протокол SIP - это современный и очень гибкий стандарт, обладающий большим количеством функций, в то время как ISDN PRI доказал свою надежность на протяжении 20 лет использования. PRI дороже в обслуживании но безопаснее, а SIP дешевле и быстрее с точки зрения запуска. Вся разница между SIP и PRI в статье. Зачем нужен протокол RTP? Для передачи голоса в VoIP сетях. SIP делает сигнализацию, а RTP отправляет голос. Кстати, RTP ходит напрямую между телефонами. Чтиво про протокол RTP А термин SBC вам знаком? Знаком. Session Border Controller (контроллер граничных сессий) - сетевое устройство, которое может обеспечить безопасность VoIP, а также соединять несовместимые (разнородные) сигнальные протоколы и медиа потоки, поступающие от различных устройств. SBC - устройства используются в корпоративных сетях и сетях провайдеров услуг и, как правило, развертываются на границе сети (точка входа провайдера в корпоративный контур). А вот тут можете почитать про SBC в подробностях. И последний вопрос. Про SDP знаете? Да. Протокол SDP используется для установления соединения и согласования параметров передачи и приема аудио или видео потоков между оконечными устройствами. Наиболее важными параметрами обмена являются IP - адреса, номера портов и кодеки. Детально про SDP можно почитать тут. Итоги Мы рассмотрели топ 40 вопрос, которые могут быть заданы на собеседовании, связанном с IT специальностью. Под каждым вопросом мы дали короткий ответ на такой вопрос - но лучше всего детально изучать вопрос. Поэтому, под большинством материалов вам будет доступна ссылка на подробный материал, который раскрывает суть каждого вопроса, чтобы точно быть уверенном в успехе собеседования. И еще: почитайте статью, где мы собрали большинство IT терминов - определенно будет полезно. Удачи на собеседовании :)
img
Мир VoIP (Voice over IP) многогранен. На рынке существует целое множество решений для построения корпоративных систем связи – IP – АТС. Нас интересуют программные «open source» решения, поэтому, сегодня мы сравним две популярные телефонные платформы и ответим на вопрос: что круче, FreeSWITCH или Asterisk? :) Про Asterisk Давайте немного теории: Asterisk - программная автоматическая телефонная станция (АТС) на базе протокола IP, которая способна предложить богатый, с точки зрения телефонии, инструментарий для офиса. Asterisk, будучи одной из первых программных IP-АТС был создан в 1999 году как решение с открытым кодом (open source). При поддержке компании Digium в 2005 году IP – АТС увидела свет и была выпущена в «продакшн». Реализация происходит под двумя лицензиями: GNU GPL (General Public License) и патентная лицензия для разработки собственных решений на базе Asterisk, рассчитанных на дальнейшую продажу. Более миллиона пользователь радуются IP – АТС Asterisk каждый день по всему миру :) Но не все так гладко (удар молнии за окном). Исторически, Asterisk имеет ряд проблем, связанных с масштабируемостью, нестабильностью работы при повышении нагрузки. С учетом особенностей лицензирования, многие пользователи (в том числе компании - разработчики) искали новый продукт. Про FreeSWITCH В 2006 году группа бывших разработчиков Asterisk приняли решение разработать альтернативное решение – на свет появился FreeSWITCH. Вдохновленные модульной структурой веб – сервера Apache, команда разработчиков преследовала цель улучшить параметры масштабируемости и стабильности работы на разных платформах. FreeSWITCH создан по модели состояний, вследствие чего, каждый вызов(канал) работает по отдельному потоку данных. Для построения структуры, использовались компоненты open – source решений, такие как, например, Sofia SIP – SIP UA с открытым исходным кодом, созданный компанией Nokia. Что под капотом? Asterisk – модульная структура. Во время работы, Asterisk использует общие ресурсы, включая программные потоки – это главная проблема при большой интенсивности вызовов. Несмотря на сложность и многогранность программного кода, на котором написан Asterisk, он находит огромное множество применений в сети. С другой стороны, FreeSWITCH написан на C, структура которого более понятна и прозрачна. Потоки процессов выполняются последовательно и отдельно для каждого канала, что безусловно отличает Фрисвитч от Asterisk. При этом, как правило, по этой причине FreeSWITCH требует больший объем оперативной памяти (RAM) Отметим, что FreeSWITCH имеет хорошо документированный API (Application Programming Interface), сегментированный по ролям. Такая структура обеспечивает безопасное подключение к API в отличие от Asterisk, где более открытая конструкция API допускает вероятность внесения багов и ошибок. Asterisk базируется на текстовых конфигурационных файлах, в то время как FreeSWITCH использует файлы формата .xml. Безусловно, с точки зрения работы с конфигами для админа, файлы текстового формата проще редактировать, однако, плюсы формата .xml всплывают на этапе автоматизации различных процессов. Требования к железу Оценить общие требования к IP – АТС достаточно сложно, так как в каждой инсталляции используется разный набор фичей и целей эксплуатации. Однако, в таблице ниже сконцентрированы минимальные требования к серверу, на котором будет развернут Asterisk и FreeSWITCH для работы 15 телефонными аппаратами и 5 одновременными вызовами. Сравните их: Параметр FreeSWITCH Asterisk CPU Одно ядро, частота процессор 1 гГц Одно ядро, частота процессор 700 мГц RAM 1 ГБ 512 МБ HDD 10 ГБ 10 ГБ OS Linux, 32/64 бит Linux, 64 бит Как видно, FreeSWITCH потребляет больше RAM. О причине этого мы писали ранее – это связано с архитектурой. Функционал С точки зрения базового набора функций, АТС идентичны. Голосовая почты, IVR, маршрутизация, intercom и другие опции доступны для обоих лагерей пользователей. Рассмотрим преимущества, которые интересны для профессионального и более глубокого использования платформ. Начнем, пожалуй, с возможности FreeSWITCH создавать мульти – площадки. Фрисвич нативно (из коробки) умеет сегментировать площадки пользователей, разные домены и суб – домены. Это означает, что пользователи одной площадки не смогут дозвониться до пользователей другой по внутренним номерам. Другими словами, обеспечивается полнофункциональная сегрегация пользователей. Так же, безусловным преимуществом FreeSWITCH стоит отметить возможность кластеризации (объединения нескольких серверов), где каждый хост в кластере будет выполнять свою определенную роль. Итог Подведем итоги. Мы составили таблицу с результатами, чтобы вам было проще ориентироваться: Функция FreeSWITCH Asterisk Малое потребление ресурсов сервера, включая ресурсы процессора и оперативной памяти ✕ ✓ Документация и поддержка: решение проблем, форму, гайды, сильное комьюнити проекта ✕ ✓ Богатый базовый функционал: конференции, видеозвонки, IVR, голосовая почта и так далее ✓ ✓ Возможность реализации функций мульти - площадок (поддержка отдельных телефонных доменов с полной сегрегацией пользователей) ✓ ✕ Внутренние механизмы устойчивости к повышению нагрузки, связанной с повышением количества одновременных вызовов ✓ ✕ Объединение серверов в кластер, с последующим разделением ролей ✓ ✕
img
Система контроля версий (Version Control System) – это инструмент, который используется для отслеживания, внесения и управления изменениями в программном коде. Это также можно назвать просто контролем версий. Системы контроля версий помогает разработчикам сохранять изменения, внесенные в файл, на разных этапах, чтобы и они сами, и их коллеги могли их увидеть позже. Существует три типа систем контроля версий: Локальные системы контроля версий Централизованные системы контроля версий Распределенные системы контроля версий Что такое локальная система контроля версий (LVCS)? Этот тип системы контроля версий очень распространен и прост в использовании. Однако этот метод может выдавать ошибки и подвержен атакам, потому что файлы хранятся в вашей локальной системе. Это означает, что вы можете потерять системный файл или случайно забыть каталог, с которым вы работаете (и затем записать в другой каталог). Что такое централизованная система контроля версий (CVCS)? В этом типе контроля версий сервер работает как общее хранилище, в котором находятся все версии кода. CVCS помогает разработчикам работать совместно. Однако, несмотря на то, что такой метод позволяет разработчикам сотрудничать, если сервер отключится на несколько секунд или будет поврежден, то есть шанс, что вы потеряете все файлы. Это является серьезной проблемой при работе с CVCS. В CVCS только несколько разработчиков могут работать совместно над проектом. Что такое распределенная система контроля версий (DVCS)? В настоящее время это новый и наиболее часто используемый тип системы контроля версий. В DVCS у каждого разработчика есть полная резервная копия всех данных на сервере. Это означает, что всякий раз, когда сервер не будет работать или будет неисправен, то вы все равно сможете работать над своим проектом, а также копировать или создавать резервные копии своих хранилищ на сервере, чтобы восстановить их. При работе с DVCS над одним проектом может работать много разработчиков. Одной из популярнейших DVCS является Git, о которой мы сейчас будем говорить подробнее. Что такое Git? Git – это бесплатная распределенная система контроля версий с открытым исходным кодом, которую можно использовать для отслеживания изменений в ваших файлах. В Git можно работать над всеми типами и размерами проектов. С помощью Git вы можете добавлять изменения в свой код, а затем фиксировать их (или сохранять), когда это необходимо. Это означает, что у вас есть возможность вернуться к ранее внесенным изменениям. Git работает рука об руку с GitHub. А что же такое GitHub? Что такое GitHub? GitHub – это веб-интерфейс, в котором можно хранить свои репозитории Git, а также эффективно отслеживать и управлять своими изменениями. С его помощью разные разработчики имеют доступ к коду одного проекта. У вас есть возможность вносить свои собственные изменения в проект одновременно с другими разработчиками. Например, если вы вдруг допустили какую-то ошибку во время внесения изменений, вы можете легко вернуться к предыдущему этапу, где ошибки еще нет. Для чего нужно использовать GitHub? Есть множество причин для использования GitHub. Давайте рассмотрим некоторые из них. Эффективное управление проектами GitHub – это своего рода хранилище ваших репозиториев. GitHub позволяет разработчикам работать над одним проектом, находясь в разных местах. С помощью GitHub вы можете легко отслеживать внесенные вами изменения и управлять ими, а также проверять ход вашей работы над проектом. Простое сотрудничество С GitHub разработчики со всего мира могут работать вместе на одним проектом без каких-либо проблем. Команды разработчиков могут оставаться на одной странице во время совместной работы над проектом и могут легко организовывать и эффективно управлять проектом. Открытый исходный код GitHub – это бесплатная система с открытым исходным кодом. Это означает, что разработчики могут легко получить доступ к различным типам кода/проектов, которые они могут использовать для обучения и развития своих навыков. Универсальность Это свойство GitHub очень важно. GitHub – это веб-интерфейс не только для разработчиков. Его также могут использовать дизайнеры, писатели и все, кто хочет отслеживать историю своих проектов. Как настроить Git? Чтобы использовать Git, его необходимо загрузить на свой компьютер. Сделать это можно, зайдя на официальный сайт. Когда сайт откроется, прокрутите страницу вниз, и вы увидите кнопку загрузки. Нажмите на нее. Выберите свою операционную систему: Windows, MacOS, Linux/Unix. В моем случае я выбираю Windows, потому что я использую компьютер именно с этой операционной системой. Нажмите на первую ссылку в самом верху страницы, чтобы загрузить последнюю версию Git. Когда загрузка будет завершена, установите Git на свой компьютер. Для этого вам нужно будет перейти в папку, куда был загружен файл, и установить его. После завершения установки, необходимо убедиться, что Git успешно установлен в вашей системе. Откройте командную строку или Git bash (в зависимости от того, что вы решили использовать) и выполните команду: git --version Если Git был успешно установлен на вашем компьютере, то он должен отобразить текущую версию Git под командой, которую вы только что выполнили. Если отображается, то мои поздравления! Как настроить Git? Теперь, когда мы установили Git на компьютер, нам нужно его настроить. Мы делаем это для того, чтобы каждый раз, когда мы работаем в команде над проектом, мы могли бы легко идентифицировать сделанные нами коммиты в репозитории. Чтобы настроить Git, нам нужно указать имя, адрес электронной почты и ветку с помощью команды git config --global. Например: На изображении выше мы использовали git config --global user.name для настройки имени пользователя. То же самое относится и к конфигурации git config --global user.email. Git имеет ветку по умолчанию master, можно поменять называние, чтобы она называлась main, с помощью команды git config --global init.default branch main. Теперь вы готовы начать использовать Git. Чтобы настроить учетную запись GitHub, зайдите на их официальный сайт. Нажмите на кнопку регистрации в правом верхнем углу: Когда откроется форма регистрации, введите свой адрес электронной почты, создайте пароль, введите свое имя пользователя, а затем проверьте все, прежде чем нажимать кнопку создания учетной записи. Популярные команды Git Есть несколько основных команд Git, которые должен знать каждый разработчик: git config git init git remote add origin git add git commit git clone git push git rm git branch git diff git log git checkout git merge Давайте кратко рассмотрим каждую из них, чтобы вы понимали, как их использовать. Как использовать команду git config Эта команда используется для того, чтобы установить имя пользователя, адрес электронной почты и ветку пользователя, чтобы определить, кто зафиксировал изменения при работе над проектом. Эта команда используется, когда вы загрузили Git на свой компьютер и хотите настроить его для своего использования. Например: git config --global user.name “[username]” git config --global user.email [email address] Как использовать команду git init Эта команда используется для того, чтобы запустить Git в своем проекте для отслеживания изменений, внесенных в проект. git init Когда вы запускаете эту команду, вы должны увидеть, что папка с названием .git автоматически создалась в текущей папке, над которой вы работаете. Как использовать команду git remote add origin Теперь мы укажем нашей кодовой базе (папке, в которой находится наш код), где хранить наш код в облаке. Мы введем git remote add origin [your-repo-url], который установит источник для нашего репозитория. Теперь мы можем заливать (пушить) код в наш источник (origin), чтобы сохранить его на наше облако в GitHub. Как использовать команду git add Эта команда добавляет ваш файл в промежуточную область (staging area). Промежуточная область – это та область, в которую добавляются файлы, в которые мы вносим изменения, и где они ждут следующего коммита. Чтобы добавить файл в промежуточную область, нужно воспользоваться командой git add. Она добавляет все файлы в папке в промежуточную область. git add (file name) добавляет имя конкретного файла, который вы хотите зафиксировать в промежуточной области. Эту команду нужно использовать тогда, когда вы внесли изменения в файл и хотите зафиксировать их в своем проекте. Как использовать команду git commit Эта команда фиксирует любой файл, который был добавлен с помощью команды git add, а также все файлы в промежуточной области. git commit –m “first commit” Эта команда навсегда сохраняет файл в репозиторий Git. Ее необходимо использовать каждый раз, когда вы добавляете файл в промежуточную область с помощью команды git add. -m называется «флагом» и сигнализирует о том, что есть необязательные действия, которые мы хотели бы выполнить с этим комитом. Флаг m означает, что впоследствии мы предоставим сообщение, которое является в нашем случае - «first commit». Как использовать команду git clone Эта команда используется для того, чтобы скопировать существующий репозиторий в другую область из одного места в другое. git clone (repository name) Эта команда используется, когда вы хотите продублировать репозиторий Git из GitHub в локальное хранилище. Как использовать команду git push Эта команда используется для того, чтобы загрузить/отправить файлы из локального репозитория/хранилища в другое хранилище, например, в удаленное, такое как GitHub. git push (remote storage name) Эта команда используется только тогда, когда вы довольны всеми изменениями и комитами, которые были сделаны в проекте, и, наконец, хотите отправить их в репозиторий Git на GitHub. Как использовать команду git rm Эта команда используется для того, чтобы удалить файл из рабочего репозитория. git rm (filename) Эта команда используется только тогда, когда вам необходимо избавиться от нежелательных изменений или файлов из репозитория Git. Как использовать команду git branch Эта команда используется для того, чтобы проверить текущую ветку, над который вы работаете, main или master. git branch Эта команда поможет вам узнать имя текущей ветки, над которой вы работаете. Как использовать команду git diff Git покажет вам разницу между кодом, который у вас есть сейчас, и кодом, когда он был сохранен в последний раз. Немного сложно понять, что здесь происходит, но - — это удаления, а + — вставки. Мы удалили текст Hello, this is a git example и добавили текст Now I have changed the first line. Так Git отслеживает, что изменилось между версиями. diff --git a/git.js b/git.js index eb0f1d1..8dbf769 100644 --- a/git.js +++ b/git.js @@ -1,3 +1,3 @@ +console.log('Now I have changed the first line.') -console.log('Hello, this is a git example!') console.log('And here is another!') console.log('And yet a third') Как использовать команду git log Мы можем просмотреть сделанные нами коммиты с помощью команды git log. Это может выглядеть так: commit 67627dd44e84a3106a18a19e94cf9f3723e59b3c (HEAD -> master) Author: amberwilkie amber@amberwilkie.com Date: Wed Apr 22 16:55:39 2020 -0400 Update first console log commit 49fe4152f474a9674a83e2b014a08828209d2690 Author: amberwilkie amber@amberwilkie.com Date: Wed Apr 22 16:54:59 2020 -0400 Initial commit Мы видим наши сообщения комиты, время, в которое мы их совершили, и уникальный идентификатор для нашго комита, который мы можем использовать для ссылки на коммиты в будущем. Как использовать команду git checkout Если мы хотим вернуться и увидеть изменения в нашем коде из предыдущего коммита, мы сделаем это с помощью: git checkout 49fe4152f474a9674a83e2b014a08828209d2690 Git поместит наш код во временное состояние, чтобы мы могли посмотреть, как код выглядел на этом снимке во времени. Тут мы использовали идентификатор комитаю Чтобы вернуться к нашей ветке, введите git checkout [branch_name]. Как использовать команду git merge git merge возьмет все коммиты, которые вы сделали в этой ветке, и вставит их в основную ветку, сохранив вашу работу. Ветки Git полагается на ветвление для поддержки нашего кода. Вы можете считать главной веткой (обычно это master или main) ствол вашего дерева кода. Вы можете отпочковаться от нее и внести некоторые изменения, но конечная цель всегда состоит в том, чтобы вернуть их в ствол, в основную ветку. Вы можете использовать git checkout для создания новой ветки, а не только для проверки предыдущих версий вашего кода. Попробуйте использовать git checkout -b new-branch. Флаг -b используется, когда мы создаем новую ветку, и после флага мы пишем имя нашей новой ветки. Мы можем сделать много коммитов в этой ветке, а затем вернуть их в master с помощью процесса, называемого слиянием (merging), используя для этого команду git merge. На диаграмме ниже точки обозначают коммиты. Две ветки были сделаны от мастера. В разработке программного обеспечения мы часто называем эти «функциональные» (feature) ветки, в отличие от основной главной ветки. Синяя ветвь была объединена с мастером, а желтая ветвь все еще находится в разработке. Обратите внимание, что несмотря на то, что желтая ветка была создана после синей ветки, в этой ветке будут видны только изменения из мастера. Если мы создадим третью ветку когда-нибудь в будущем, изменения как из master, так и из синей ветки будут присутствовать в новой, третьей ветке. Просмотр кода в GitHub Теперь ваш код находится GitHub! Вы можете щелкать по файлам и папкам вашего репозитория, просматривая текущее состояние кода. Вы также можете просмотреть предыдущие версии кода. Вы увидите список коммитов, сделанных в репо, и если вы нажмете на них, вы сможете просмотреть файлы вашего проекта в том виде, в каком они существовали в этот период времени. Пулл-реквесты Есть много других возможностей GitHub, но самая важная в совместной работе с коллегами — это пулл реквесты (pull request). Пулл реквест (очень часто сокращается до PR или ПР) — это способ управления входящими изменениями в базе кода. По сути это событие, когда один участник просит влить свои изменения в ветку. Чтобы сделать это, вы создадите новую ветку на своем локальном компьютере, создадите хотя бы один комит в этой ветке, а затем сделайте git push origin head отправите эту ветку на GitHub. (Вы можете указать имя своей ветки вместо заголовка, но это полезно для точного соответствия всех элементов). Теперь, когда вы вернетесь на GitHub, вы увидите, что ваша ветка доступна для создания PR. Если вы нажмете кнопку Compare & pull request, вы сможете изменить многие настройки для своего PR. Наиболее важными, как правило, являются заголовок и описание. Если вы работаете в команде, вы можете пометить коллег, чтобы попросить их просмотреть ваш код, добавить в проекты и использовать многие другие функции. Обратите внимание, что мы сравниваем ветки. Здесь мы просим добавить изменения из этой ветки (pr-пример) в основную ветку. Но мы могли бы ориентироваться на любую другую ветку в нашем репо. А пока просто помните, что master — не единственная ветка, с которой вы можете сделать ПР. Когда вы нажмете Create Pull Request, вы увидите этот экран: Вы можете посмотреть все коммиты в этой ветке, а также можете слить свой пулреквест. Помните, как мы могли объединить наш код локально при помощи merge, когда говорили о Git? Мы можем выполнить то же действие с нашим облачным кодом на GitHub. Если вы нажмете зеленую кнопку Merge pull request, ваши изменения будут объединены в мастер. Заключение Благодаря этому руководству, вы узнали, что такое системы контроля версий. Также вы узнали, как установить и настроить Git на своем компьютере и настроить учетную запись GitHub. И, наконец, мы рассмотрели некоторые популярные команды Git.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59