Git - начало, конца

Для чего оно нужно ?
Начнем с проблемы:
Вы решили создать свой большой проект. Уже написали 20% от всего проекта и поняли, что вам нужна помощь. Вы решили подключить к проекту своего друга. И перед вами встала проблема, как передать весь свой проект другому человеку ?, первое что приходит в голову это скинуть его через tg или на почту, хорошая идея, но теперь стоит другая проблема как вы будете собирать проект ? Допустим ваш друг написал корзину вы в этот момент занимались аунтификацией пользователя. Он вам скидывает свои файлы и вы ему скидываете свои и вместе пытаетесь как-нибудь скрестить файлы в проекте. Тут вы понимаете что так писать проект не удобно и сильно тормозит процесс разработки. Здесь на помощь приходит Git
.
Что это ?
Git
- это инструмент командной строки, предназначенный для контроля версий и отслеживания изменений в файлах вашего проекта. Обычно его применяют для работы с кодом, но он подходит и для других типов данных, например, изображений, что может быть полезно дизайнеров.
С помощью Git можно вернуться к предыдущим версиям проекта, сравнивать изменения, анализировать их и объединять в общем хранилище.
Репозиторий — это место, где хранится ваш код вместе с историей его изменений. Git работает локально, и все репозитории сохраняются в отдельных папках на вашем компьютере.
И как им пользоваться ?
-
Изначально надо зайти на сайт github и зарегистрироваться.
-
После успешной регистрации, нужно установить
Git
на свой компьютер. -
Войти в свой аккаунт на компьютере, открываем терминал -> пишем эти команды
$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com
теперь мы связали свой git с аккаунтом гитхаб.
- Создаем новый репозиторий в гитхабе

пройдемся по тому что здесь можно сделать:
Owner- создатель.
Repository name - Название вашего репозитория (проекта), можно назвать как угодно.
description - описание вашего репозитория (проекта).
Public/Private - Публичный/Закрытый, если публичный то его могут видеть/клонировать/изменять все пользователи интернета, Закрытый только вы и кого добавите в репозиторий, когда добавляете человека в репозиторий он называется contributors (пользователи github, от имени которых создавались коммиты).
Initialize a readme file - Генерирует readme файл, (лучше не нажимать эту галочку по началу изучения гита ), если не нажать эту галачку он сгенерирует команды для того чтоб загругить свой проект в репозиторий (запушить).
Вот список команд который генерируются в новом репозитории:
git initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin https://github.com/faildede/test.gitgit push -u origin main
Эти команды нужно вписать в терминал который где отркыта директория проекта, давайте пройдемся по каждой команде чтоб понять
git init
- Эта команда создает новый локальный репозиторий в текущей папке.
Git начинает отслеживать изменения файлов внутри этой папки.
git add README.md
- Добавляет файл README.md в индекс (стадию подготовки перед коммитом).
Git теперь знает, что этот файл нужно сохранить в истории изменений.
git commit -m "first commit"
- Фиксирует (сохраняет) изменения в репозитории с сообщением “first commit”.
Это как “снимок” текущего состояния файлов.
git branch -M main
- Переименовывает текущую ветку в main.
(По умолчанию ветка может называться master, но GitHub рекомендует main.)
git remote add origin https://github.com/faildede/test.git
- Связывает локальный репозиторий с удаленным (GitHub).
Теперь Git знает, куда отправлять файлы.
git push -u origin main
- Отправляет (загружает) файлы из локального репозитория в удаленный (GitHub).
Флаг -u привязывает локальную ветку main к удаленной, чтобы в будущем можно было просто писать git push.
Если вы все сделали правильно и нет ошибок в терминале, то поздравляю у вас есть первый репозиторий с проектом на гитхабе.
Как работает Git ?
Каждая точка сохранения вашего проекта носит название коммит (commit). У каждого commit-a есть hash (уникальный id) и комментарий. Из таких commit-ов собирается ветка. Ветка - это история изменений. У каждой ветки есть свое название. Репозиторий может содержать в себе несколько веток, которые создаются из других веток или вливаются в них.

Если посмотреть на картинку, то становиться чуть проще с пониманием. Каждый кружок, это commit. Стрелочки показывают направление, из какого commit сделан следующий. Например C3 сделан из С2 и т. д. Все эти commit находятся в ветке под названием main. Это основная ветка, чаще всего ее называют master . Прямоугольник main показывает в каком commit мы сейчас находимся, проще говоря указатель.
🚀 Базовые команды Git
:
git log
- Отображает историю коммитов в текущем репозитории.
Можно увидеть:
-
Хеш-код каждого коммита (идентификатор)
-
Имя автора
-
Дата коммита
-
Сообщение коммита
git log
Чтобы посмотреть историю в сокращенном виде:
git log --oneline
Чтобы увидеть историю только для конкретного файла:
git log -- README.md
git status
-
Показывает текущий статус репозитория, включая:
-
Неотслеживаемые файлы
-
Измененные файлы
-
Файлы, готовые к коммиту
-
git status
📌 Подсказки от Git:
Красным — файлы, которые изменены, но не добавлены в коммит (git add).
Зеленым — файлы, которые уже добавлены и готовы к коммиту.
git branch --list
- Показывает список всех веток в репозитории.
Текущая ветка выделена звездочкой
*
.
git branch --list
Упрощенная версия:
git branch
git checkout <имя_ветки>
- Переключает на указанную ветку.
git checkout feature-branch
git branch <имя_ветки>
- Создает новую ветку, но НЕ переключает на нее.
git branch new-feature
После этого, чтобы перейти на нее, используй git checkout new-feature
.
git checkout -b <имя_ветки>
- Создает новую ветку и сразу на нее переключает.
git checkout -b new-feature
📌 Это удобнее, чем делать git branch
+ git checkout
.
git branch -d <имя_ветки>
- Удаляет указанную ветку, но только если она слита с другой веткой. Если в ней есть несохраненные изменения — Git выдаст предупреждение.
git branch -d old-feature
Если ветку нужно удалить в принудительном режиме (даже если есть изменения):
git branch -D old-feature
git merge
- Объединяет одну ветку с текущей. Для этого нужно переключиться на основную ветку и выполнить merge.
git checkout main # Переключаемся на главную веткуgit merge feature-branch # Объединяем с feature-branch
📌 Если в коде нет конфликтов, Git сам объединит изменения. Если есть конфликты, их нужно будет исправить вручную.
Все команды и краткое описание:
Команда | Описание |
---|---|
git log | Показывает историю коммитов |
git status | Показывает текущее состояние файлов |
git branch --list | Показывает список веток |
git checkout <ветка> | Переключает на другую ветку |
git branch <ветка> | Создает новую ветку |
git checkout -b <ветка> | Создает и переключает на новую ветку |
git branch -d <ветка> | Удаляет ветку |
git merge <ветка> | Сливает изменения ветки в текущую |