---
status: seed
type: guide
tags:
  - devops
  - git
  - cli
created: 2025-12-17
updated: 2026-05-07
title: Основные команды git
---

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

Эта заметка — краткий справочник по базовым командам [[Git]].

## Создание и получение репозитория

- `git init` — создать новый Git-репозиторий в текущем проекте.
- `git clone` — создать локальную копию удалённого репозитория.

## Работа с ветками

- `git branch` — показать, создать или удалить ветки.
- `git checkout` — переключиться на ветку, файл или коммит.
- `git merge` — слить одну ветку в другую.
- `git rebase` — перебазировать ветку поверх другой ветки.

## Работа с изменениями

- `git status` — показать состояние рабочего каталога.
- `git add` — добавить изменения в индекс.
- `git commit` — зафиксировать проиндексированные изменения.
- `git restore` — откатить изменения или убрать их из индекса.
- `git revert` — создать новый коммит, отменяющий выбранный старый коммит без переписывания истории.

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

- `git push` — отправить локальные коммиты в удалённый репозиторий.
- `git pull` — получить изменения из удалённого репозитория и сразу объединить их с локальной веткой.

Платформы вроде [[Gitlab]] используют эти операции как основу для командной разработки, merge request и CI/CD.

## Merge и rebase

`git merge` и `git rebase` решают одну задачу: переносят изменения из одной ветки в другую. Разница в том, как они меняют историю.

### Merge

`git merge` создаёт слияние веток без переписывания уже существующих коммитов. Это безопасный вариант для публичных веток.

![](https://legacy.merionet.ru/images/devops/images/3756/img_04.png)

### Rebase

`git rebase` переносит коммиты текущей ветки поверх другой ветки и помогает получить более линейную историю.

![](https://legacy.merionet.ru/images/devops/images/3756/img_03.png)

> [!important] Золотое правило rebase
> Не выполнять `git rebase` над публичной веткой, если её уже используют другие разработчики.

## Когда выбирать merge или rebase

- Если нужно сохранить полную историю и не переписывать публичные коммиты — использовать `git merge`.
- Если нужна чистая линейная история в локальной или личной ветке — использовать `git rebase`.

## Связанные заметки

- [[Git]]
- [[Gitlab]]
- [[DevOps - основы]]
