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

В этом разделе вы узнаете, что такое Git и GitHub, в чём между ними разница, а также познакомитесь с основными концепциями и командами git.
1. GitHub и Git — в чём разница?
Git — это распределённая система контроля версий. Она позволяет отслеживать изменения в коде, работать с ветками, объединять изменения разных разработчиков, откатывать код и работать офлайн.
GitHub — это веб-сервис для хостинга Git-репозиториев и совместной разработки. Он добавляет к git удобный интерфейс, pull requests, обсуждения, трекер задач и возможности для командной работы.
Слоган GitHub — Social Coding, то есть совместная разработка. Это не просто хранилище кода, но и платформа для открытых и закрытых проектов, активно используемая миллионами разработчиков по всему миру.
2. Состояния файлов в рабочем каталоге Git
- Отслеживаемые файлы — это те файлы, которые были в последнем слепке состояния проекта (snapshot) или подготовлены к коммиту. Они могут быть: не изменёнными, изменёнными, новые (added).
- Не отслеживаемые файлы — это всё остальное, любые файлы в вашем рабочем каталоге, которые не входили в ваш последний слепок состояния и не подготовлены к коммиту.
3. Основные команды git
- git init — создаёт новый локальный репозиторий.
- git add — добавляет файлы в индекс (staging area) для следующего коммита.
- git commit - сохранение состояния своего проекта в репозиторий git. Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в git’е, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок. Для увеличения эффективности, если файлы не были изменены, git не запоминает эти файлы вновь, а только создаёт ссылку на предыдущую версию идентичного файла, который уже сохранён.
- git fetch - данная команда связывается с указанным удалённым проектом и забирает все те данные проекта, которых у вас ещё нет. После того как вы выполнили команду, у вас должны появиться ссылки на все ветки из этого удалённого проекта. Теперь эти ветки в любой момент могут быть просмотрены или слиты. Важно отметить, что команда fetch забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда вы будете готовы.
- git push - когда вы хотите поделиться своими наработками, вам необходимо отправить (push) их в главный репозиторий. Эта команда срабатывает только в случае, если вы клонировали с сервера, на котором у вас есть права на запись, и если никто другой с тех пор не выполнял команду push. Если вы и кто-то ещё одновременно клонируете, затем он выполняет команду push, а затем команду push выполняете вы, то ваш push точно будет отклонён. Вам придётся сначала вытянуть (pull) их изменения и объединить с вашими. Только после этого вам будет позволено выполнить push.
- 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 автоматически связывает вашу версию проекта с оригиналом.

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