Git и GitHub — Разница и основные команды

Git и GitHub — Разница и основные команды фото
Author: Tatyana Milkina

В этом разделе вы узнаете, что такое Git и GitHub, в чём между ними разница, а также познакомитесь с основными концепциями и командами git.

1. GitHub и Git — в чём разница?

Git — это распределённая система контроля версий. Она позволяет отслеживать изменения в коде, работать с ветками, объединять изменения разных разработчиков, откатывать код и работать офлайн.

GitHub — это веб-сервис для хостинга Git-репозиториев и совместной разработки. Он добавляет к git удобный интерфейс, pull requests, обсуждения, трекер задач и возможности для командной работы.

Слоган GitHub — Social Coding, то есть совместная разработка. Это не просто хранилище кода, но и платформа для открытых и закрытых проектов, активно используемая миллионами разработчиков по всему миру.

2. Состояния файлов в рабочем каталоге Git

  1. Отслеживаемые файлы — это те файлы, которые были в последнем слепке состояния проекта (snapshot) или подготовлены к коммиту. Они могут быть: не изменёнными, изменёнными, новые (added). 
  2. Не отслеживаемые файлы — это всё остальное, любые файлы в вашем рабочем каталоге, которые не входили в ваш последний слепок состояния и не подготовлены к коммиту.

3. Основные команды git

  1. git init — создаёт новый локальный репозиторий.
  2. git add — добавляет файлы в индекс (staging area) для следующего коммита.
  3. git commit - сохранение состояния своего проекта в репозиторий git. Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в git’е, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок. Для увеличения эффективности, если файлы не были изменены, git не запоминает эти файлы вновь, а только создаёт ссылку на предыдущую версию идентичного файла, который уже сохранён.
  4. git fetch - данная команда связывается с указанным удалённым проектом и забирает все те данные проекта, которых у вас ещё нет. После того как вы выполнили команду, у вас должны появиться ссылки на все ветки из этого удалённого проекта. Теперь эти ветки в любой момент могут быть просмотрены или слиты. Важно отметить, что команда fetch забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда вы будете готовы.
  5. git push - когда вы хотите поделиться своими наработками, вам необходимо отправить (push) их в главный репозиторий. Эта команда срабатывает только в случае, если вы клонировали с сервера, на котором у вас есть права на запись, и если никто другой с тех пор не выполнял команду push. Если вы и кто-то ещё одновременно клонируете, затем он выполняет команду push, а затем команду push выполняете вы, то ваш push точно будет отклонён. Вам придётся сначала вытянуть (pull) их изменения и объединить с вашими. Только после этого вам будет позволено выполнить push. 
  6. git pull - автоматически извлекает и затем сливает данные из удалённой ветки в вашу текущую ветку. Этот способ может оказаться более простым или более удобным. К тому же по умолчанию команда git clone автоматически настраивает вашу локальную ветку master на отслеживание удалённой ветки master на сервере, с которого вы клонировали (подразумевается, что на удалённом сервере есть ветка master). Выполнение git pull, как правило, извлекает (fetch) данные с сервера, с которого вы изначально клонировали. И автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.

4. Метки (tags)

Метки позволяют зафиксировать важные моменты в истории проекта — например, выпуск стабильной версии. Используются для обозначения релизов (v1.0, v2.0 и т.д.).

5. Ветвление (branching)

Ветвление — это возможность создавать независимые версии проекта для работы над новыми функциями или исправлениями. Основная ветка по умолчанию называется main или master. Git хранит проект как серию снимков (snapshots), а ветка — это указатель на текущий коммит.

6. Работа с удалёнными репозиториями

Удалённый репозиторий — это версия проекта, размещённая в интернете (например, на GitHub). Вы можете взаимодействовать с удалённым репозиторием через команды git fetch, git pull и git push.

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

7. Fork — ответвление репозитория на GitHub

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

Fork — это стандартный способ работы с open source-проектами. GitHub автоматически связывает вашу версию проекта с оригиналом.

Курс 'Java для начинающих' на Udemy Курс 'Java для начинающих' на Udemy
Читайте также:
Комментарии