Разработка программного обеспечения и связанные с ней методологии прошли долгий путь с появлением Agile, Lean и DevOps. Теперь речь идет об автоматизации — частых и более быстрых выпусках небольшими порциями, чтобы функции и программное обеспечение доходили до целевой аудитории гораздо быстрее и эффективнее. DevOps стал центральной темой, и каждый разработчик программного обеспечения хочет узнать больше о современных подходах и инструментах разработки программного обеспечения. Одним из таких инструментов является «Git», и его необходимо знать каждому разработчику.
Git необходим каждому начинающему, кто пишет код или участвует в проекте DevOps. В этой статье мы обсудим, что такое Git и другие концепции, связанные с ним.
Что такое Git?
Git (сайт тут) был разработан Линусом Торвальдсом, создателем операционной системы Linux. Git — это система контроля версий (VCS), которая используется чаще, чем альтернативные варианты. На фундаментальном уровне есть две замечательные вещи, которые позволяет делать VCS:
Отслеживать изменения, которые вы вносите в свои файлы, и улучшать сотрудничество, упрощая работу над проектами с несколькими людьми и командами.
Git — это программное обеспечение, которое запускается локально на машине разработчиков. Файлы и история хранятся на компьютере разработчиков. Разработчики также могут использовать онлайн-хостинги, такие как GitHub и Bitbucket, для сохранения копии своих файлов и истории ревизий. Центральное место для загрузки изменений и загрузки изменений от других позволяет легко сотрудничать между командами.
Git может автоматически объединять изменения; таким образом, два разработчика могут работать над разными частями одного и того же файла и позже объединить изменения, не дожидаясь друг друга и не теряя работу друг друга.
Почему именно GIT?
Разработка программного обеспечения подразумевает совместную работу команды разработчиков над одной и той же кодовой базой. Чтобы избежать конфликта кода между этими разработчиками, нам нужна централизованная система контроля версий, такая как Git. Git помогает разработчикам возвращаться к более старым версиям кодовой базы для внесения правок, например, исправления ошибок или возврата изменений кода. С помощью ветвей Git помогает разработчикам параллельно работать над реализацией нескольких функций или исправлением ошибок, а затем объединять эти изменения по мере готовности.
С помощью Git вы сможете видеть, над чем работают другие, просматривать их код, просматривать свои предыдущие изменения, откатываться к предыдущему коду и делать многое другое.
Как получить Git?
Git обычно установлен по умолчанию на многих системах.
Вы можете скачать git для любой операционной системы здесь.
Попробуйте GitHub Desktop (для Windows и Mac), если вам нравится использовать графический интерфейс пользователя (GUI).
Ну а если вы хотите загрузить его с нуля, то по этой ссылке есть подробная информация об установке Git на несколько операционных систем.
Ключевые терминологии Git
Основные термины Git включают:
- Система контроля версий:Git помогает поддерживать различные версии кодовой базы на разных этапах жизненного цикла разработки. Его также называют менеджером исходного кода.
- Коммит: Когда разработчик вносит изменения в код, эти изменения сохраняются в локальном репозитории. Каждый коммит сохраняет копию измененных/добавленных файлов в Git.
- Push — отправляет последние коммиты из локального репозитория разработчика на удаленный сервер, например, GitHub, GitLab или BitBucket.
- Pull — загружает все изменения, сделанные в удаленном репозитории Git, и объединяет их с локальным репозиторием разработчиков.
- SHA (Secure Hash Algorithm): Это уникальный идентификатор, присваиваемый каждому коммиту.
- Ответвление: Когда вы отклоняетесь от основной линии разработки программного обеспечения и продолжаете работать/кодировать, не нарушая основную линию разработки.
Роль в DevOps
Подход DevOps нуждается в системе контроля версий, которая будет отслеживать все изменения. Git — это распределенная система контроля версий, которая позволяет разработчикам сохранять локальную копию сделанных ими коммитов. GIT как инструмент DevOps способствует сотрудничеству и ускорению циклов выпуска релизов, а именно на этом основана концепция DevOps.
Контроль версий — одна из лучших практик DevOps. С помощью контроля версий разработчики, работающие над проектом, имеют возможность версионировать программное обеспечение, делиться им, сотрудничать, объединять и создавать резервные копии.
При работе в крупных организациях, где несколько команд работают вместе над одним проектом, Git очень удобен и позволяет легко отслеживать изменения, вносимые каждой командой. Он помогает в отслеживании кода, контроле версий и эффективном управлении кодом.
Любой человек, желающий начать или сделать карьеру в DevOps, должен начинать с основ, и GIT — это фундаментальный инструмент, который превалирует над всем остальным.
Самые популярные Git-решения
В настоящее время каждая компания в той или иной степени использует программное обеспечение. В организации существует множество проектов, над которыми работает множество разработчиков, и всем им необходимы средства для отслеживания, загрузки и получения изменений в кодовой базе. Эффективные сервисы управления репозиториями — это ключ к быстрой и эффективной разработке программного обеспечения. Самые популярные из них, основанные на Git, — GitHub, Bitbucket и GitLab.
GitHub — это хостинг для репозиториев на основе git, запущенный в 2008 году Пи Джей Хаяттом, Томом Престон-Вернером и Крисом Ванстратом. На сегодняшний день GitHub является крупнейшей платформой для размещения репозиториев с более чем 38 миллионами проектов. Она позволяет размещать и рецензировать код, управлять проектами и создавать программное обеспечение.
Bitbucket также был запущен в 2008 году австралийским стартапом и первоначально поддерживал только проекты Mercurial. В 2010 году Bitbucket был ловко куплен компанией Atlassian, и со следующего года он начал поддерживать Git-хостинг, который теперь является его основным направлением. Bitbucket стал именем нарицательным и предоставляет бесплатные неограниченные частные репозитории, множество мощных интеграций, таких как Jira и Trello, а также встроенную функцию непрерывной доставки.
Компания GitLab началась как небольшой проект в 2011 году, целью которого было создать альтернативу имеющимся решениям по управлению репозиториями. Компания была зарегистрирована только в 2014 году. Сейчас Gitlab обеспечивает полную настройку DevOps для организаций, начиная с непрерывной интеграции и доставки, гибкой разработки, безопасности и т.д.
Вот базовая шпаргалка по Git, подойдет начинающим.
Основные команды
- Установить git
yum install git
- Узнать версию установленного git
git version
- Инициализировать репозиторий git
git init
- Проверить состояние репозитория git
git status
- Отслеживать все файлы кроме notes.txt
git add LICENSE README.md main.py ...
- Менять стадии
git add main.py
- Закоммитить изменения
git commit -m "initial commit"
- Скопировать репозиторий
git clone :/path/to/repository
- Установить специфические для пользователя значения конфигурации, такие как email, имя пользователя, формат файла и так далее
git config --global user.email
- Посмотреть все удаленные репозитории
git remote -v
- Создать или удалить ветви
git branch
Разница между Git и GitHub
Один из самых распространенных вопросов, который нам задают, — это разница между Git и Github. Git — это инструмент/технология, позволяющая версионировать код, а Github — это централизованно размещенный Git-сервер, на котором находится Git-репозиторий. Разработчики используют удаленный репозиторий, размещенный на Github, для обмена своей работой между собой. Github — это всего лишь один из многих инструментов, таких как Gitlab, BitBucket и т. д.
Миф: Git предназначен только для разработчиков программного обеспечения
Git предназначен не только для разработчиков. Git предназначен для всех, кто работает в сфере IT — от начинающих системных администраторов до архитекторов решений, инженеров-программистов, руководителей групп, менеджеров проектов — все они должны изучать и понимать рабочие процессы в Git.
С появлением Infrastructure as Code начинающие системные администраторы и операционные команды будут использовать Git для хранения кода, связанного с инфраструктурой, такого как файлы конфигурации Terraform, учебники Ansible Playbooks, файлы Vagrant, поддерживающие сценарии оболочки.
Миф: GitHub — это просто база/хранилище кода
Git — это не просто хранилище кода. Git — это место, где разрабатывается новое программное обеспечение. Сегодня большинство популярных проектов разрабатываются на Github — Kubernetes, Ansible, Terraform, Tensorflow, Helm Charts — вот несколько самых популярных репозиториев. Все эти проекты имеют обширную документацию, созданную на Github. Рабочий процесс Git был построен с учетом сотрудничества между разработчиками. Обзоры и утверждения кода происходят на Github. На Github есть панель Project, которая позволяет управлять проектами.
Оригинал статьи тут