73 lines
3.5 KiB
Markdown
73 lines
3.5 KiB
Markdown
---
|
|
status: seed
|
|
type: guide
|
|
tags:
|
|
- devops
|
|
- git
|
|
- cli
|
|
created: 2025-12-17
|
|
updated: 2026-05-02
|
|
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` создаёт слияние веток без переписывания уже существующих коммитов. Это безопасный вариант для публичных веток.
|
|
|
|

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

|
|
|
|
> [!important] Золотое правило rebase
|
|
> Не выполнять `git rebase` над публичной веткой, если её уже используют другие разработчики.
|
|
|
|
## Когда выбирать merge или rebase
|
|
|
|
- Если нужно сохранить полную историю и не переписывать публичные коммиты — использовать `git merge`.
|
|
- Если нужна чистая линейная история в локальной или личной ветке — использовать `git rebase`.
|
|
|
|
## Связанные заметки
|
|
|
|
- [[Git]]
|
|
- [[Gitlab]]
|
|
- [[DevOps - основы]]
|