Git — это инструмент для командной строки, который позволяет отслеживать и управлять историей изменений файлов в вашем проекте. Обычно его применяют для кода, но он также подходит и для других типов файлов, например, для изображений, что может быть полезно дизайнерам.
С помощью Git вы можете откатиться к более ранней версии проекта, сравнивать, анализировать или объединять изменения в репозитории.
Репозиторий — это место хранения вашего кода и истории его изменений. Git работает на локальном уровне, а все ваши репозитории находятся в определённых папках на жёстком диске.
Есть основные понятия:
- Commit - точки сохранения вашего проекта
- Hash - (уникальный id) и комментарий каждого commit
- Ветка - это история изменений, состоящая из commit. У каждой ветки есть своё название.
- Merge - процесс сравнивания веток и сохранение изменений от двух файлов
- Repository - это набор файлов, создающих проект. Проект может содержать в себе несколько веток, которые создаются из других веток или вливаются в них
Как работает Git
Давайте представим проект, над которым работает большая команда. У всех участников есть общий проект — набор файлов, с помощью которых функционирует приложение.
Чтобы упростить работу над проектом и обеспечить безопасность данных, участники регистрируются в системе контроля версий Git и загружают туда свой проект. На примере GitHub это выглядит так:
Ваш проект сразу находится на основной/главной ветке, которая называется main/master.
Каждый из членов команды занимается разработкой какого то нового функционала. То есть каждый берёт и скачивает к себе на ПК весь проект. чтобы его можно было редактировать.
После того как разработчики внесли изменения в свои копии файлов на локальных компьютерах, необходимо синхронизировать их с основной версией проекта на сервере. Однако просто загрузить новые файлы нельзя, ведь тогда потеряется вся история изменений и будет сложно понять, кто и что именно изменил. Здесь на помощь приходит система контроля версий Git.
Разработчики фиксируют свои изменения в локальных репозиториях Git, создавая таким образом новые версии файлов. Затем они отправляют эти изменения на серверный репозиторий, используя команду git push. Сервер принимает изменения и объединяет их с основной версией проекта, сохраняя всю историю изменений и позволяя каждому разработчику видеть, кто и что именно изменил.
Таким образом, с помощью Git можно обнаружить конфликты в файлах и увидеть изменения, внесённые каждым разработчиком. Эти изменения можно принять или отклонить. После принятия изменений они будут добавлены в основной проект, и в нём будут учтены все изменения, сделанные всеми разработчиками.
Основные преимущества Git:
История изменений: Git хранит полную историю всех изменений в вашем проекте, позволяя вам легко просматривать, откатываться к предыдущим версиям файлов и восстанавливать утерянные данные.
- Ветвление: Git поддерживает создание и управление ветками, что позволяет разработчикам независимо работать над различными функциями проекта, а затем объединять изменения в основную ветку.
- Совместная работа: Git обеспечивает возможность нескольким разработчикам одновременно работать над одним проектом, позволяя им объединять свои изменения и разрешать конфликты, если они возникают.
- Удобный доступ к коду: Git упрощает процесс распространения и обмена кодом между разработчиками, поскольку все изменения хранятся локально и могут быть легко синхронизированы с удалённым репозиторием.
- Резервное копирование: Git позволяет создавать резервные копии вашего проекта, обеспечивая возможность восстановления в случае потери данных.
Git имеет множество инструментов и команд для управления разработкой проектов. Наиболее популярными платформами для хостинга Git-репозиториев являются GitHub, GitLab и Bitbucket.
Весь свой код вы всегда можете клонировать себе по данной ссылке - https://github.com/Timurchik57/JAVA
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!