Основные команды Git
git init
- Описание: Инициализирует новый Git репозиторий. Эта команда создает новую папку
.git, содержащую все необходимые файлы репозитория. - Пример:
git init
git clone
- Описание: Клонирует репозиторий из существующего URL. Это полезно для получения копии существующего репозитория.
- Пример:
git clone https://github.com/user/repo.git
git add
- Описание: Добавляет файлы в индекс для последующего коммита.
- Пример:
git add <file>илиgit add .(для добавления всех измененных файлов)
git commit
- Описание: Фиксирует изменения в репозитории. Коммиты являются основными строительными блоками истории Git.
- Пример:
git commit -m "Ваше сообщение о коммите"
git push
- Описание: Отправляет локальные коммиты на удаленный репозиторий.
- Пример:
git push origin main
git pull
- Описание: Получает изменения с удаленного репозитория и объединяет их с текущей веткой.
- Пример:
git pull origin main
git branch
- Описание: Позволяет управлять ветками.
- Примеры:
git branch(просмотреть список веток)git branch <new-branch>(создать новую ветку)
git checkout
- Описание: Переключает ветки или восстанавливает файлы рабочего каталога.
- Примеры:
git checkout <branch-name>(переключиться на другую ветку)git checkout -b <new-branch>(создать и переключиться на новую ветку)
git merge
- Описание: Объединяет изменения из одной ветки в другую с сохранением всей истории коммитов.
Пример использования
Допустим, у вас есть две ветки: main и feature. Ветка feature содержит новые изменения, которые вы хотите добавить в основную ветку main.
- Переключитесь на ветку
main:
bash
git checkout main- Объедините ветку feature с main:
bash
git merge featureЭто добавит изменения из ветки feature в main. Если в процессе возникнут конфликты, вам нужно будет их разрешить.
Визуализация
Вот пример того, как выглядит история коммитов после git merge:
A - B - C - F (main)
\ /
D - E (feature)Здесь F является коммитом слияния, который объединяет изменения из веток main (A-B-C) и feature (D-E).
git rebase
- Описание: Объединяет изменения из одной ветки в другую, при этом создавая более линейную историю изменений. В отличие от
git merge,git rebaseне сохраняет полную историю ветвления, а "переписывает" коммиты, что может привести к более чистой истории, но с потерей оригинальной структуры ветвления.
Пример использования
Допустим, вы работаете над функционалом в ветке feature и хотите включить в неё последние изменения из main.
- Переключитесь на ветку
feature:
bash
git checkout feature- Перебазируйте ветку
featureнаmain:
bash
git rebase mainЭто переместит все коммиты из feature на вершину ветки main. Если возникнут конфликты, вам нужно будет их разрешить перед завершением процесса rebase.
Визуализация
До git rebase:
main: A - B - C
\
feature: D - EПосле git rebase:
main: A - B - C
\
feature: D' - E'(Коммиты D и E были "переписаны" на основе C)