[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-git-kakie-osnovnye-komandy-git-nuzhno-znat":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},1327,"kakie-osnovnye-komandy-git-nuzhno-znat",44,"git","Git","📦","Какие основные команды Git нужно знать?","Команды Git — это набор CLI-инструментов для управления репозиторием, разделённых на категории: создание, отслеживание изменений, работа с ветками, синхронизация.\n\n### Создание и клонирование\n\n```bash\n# Создать новый локальный репозиторий\ngit init\n\n# Клонировать удалённый репозиторий\ngit clone https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo.git\n\n# Клонировать в указанную директорию\ngit clone https:\u002F\u002Fgithub.com\u002Fuser\u002Frepo.git my-project\n```\n\n### Отслеживание изменений\n\n```bash\n# Показать состояние рабочей директории\ngit status\n\n# Показать изменения в файлах (unstaged)\ngit diff\n\n# Показать изменения, добавленные в индекс (staged)\ngit diff --staged\n\n# Добавить файл в индекс (staging area)\ngit add Main.java\n\n# Добавить все изменённые файлы\ngit add .\n\n# Зафиксировать изменения\ngit commit -m \"feat: добавлен новый сервис авторизации\"\n\n# Просмотреть историю коммитов\ngit log\ngit log --oneline --graph --all\n```\n\n### Работа с ветками\n\n```bash\n# Создать новую ветку\ngit branch feature\u002Fauth\n\n# Переключиться на ветку\ngit switch feature\u002Fauth        # современный способ (Git 2.23+)\ngit checkout feature\u002Fauth      # классический способ\n\n# Создать ветку и переключиться на неё\ngit switch -c feature\u002Fauth\ngit checkout -b feature\u002Fauth\n\n# Удалить ветку\ngit branch -d feature\u002Fauth     # безопасное удаление (проверяет merge)\ngit branch -D feature\u002Fauth     # принудительное удаление\n```\n\n### Синхронизация с удалённым репозиторием\n\n```bash\n# Скачать изменения без слияния\ngit fetch origin\n\n# Скачать и слить изменения (fetch + merge)\ngit pull origin main\n\n# Отправить изменения на удалённый сервер\ngit push origin feature\u002Fauth\n\n# Посмотреть удалённые репозитории\ngit remote -v\n```\n\n### Слияние и перебазирование\n\n```bash\n# Слить ветку в текущую\ngit merge feature\u002Fauth\n\n# Перебазировать текущую ветку на main\ngit rebase main\n```\n\n### Временное сохранение\n\n```bash\n# Сохранить незакоммиченные изменения\ngit stash\n\n# Восстановить сохранённые изменения\ngit stash pop\n```\n\n### Ключевые моменты\n\n- `git pull` = `git fetch` + `git merge` — важно понимать эту разницу\n- `git switch` и `git restore` (Git 2.23+) — более безопасные альтернативы перегруженной команде `git checkout`\n- `git add .` добавляет все изменения в текущей директории, `git add -A` — во всём репозитории\n- Всегда проверяйте `git status` перед коммитом\n\n### Частые ошибки\n\n- Использование `git add .` без предварительного `git status` — можно случайно добавить лишние файлы\n- Путать `git pull` и `git fetch` — `pull` сразу меняет рабочую директорию\n- Забывать указать ветку при `git push`, особенно при первом пуше новой ветки (нужно `git push -u origin branch-name`)\n- Делать огромные коммиты вместо маленьких атомарных — усложняет review и откат\n\n### Как используется в 2026\n\n- `git switch` и `git restore` стали рекомендуемыми командами вместо `git checkout` для соответствующих операций\n- `git log --oneline --graph` — незаменим при работе с множеством веток\n- Многие команды автодополняются AI-ассистентами в IDE\n- Использование `git pull --rebase` по умолчанию стало распространённой практикой для более чистой истории\n\n> **На собеседовании:** покажите, что знаете не просто список команд, а понимаете их связь: `pull` = `fetch` + `merge`, `switch` — современная замена `checkout`. Интервьюер часто спрашивает разницу между `git add .` и `git add -A`, а также зачем нужен `git fetch` отдельно от `pull`.","","junior",[15,7,16,17],"cli","основы","commands",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":36,"featuredSnippetReady":37},"Какие основные команды Git нужно знать — Gymterview","Обзор основных команд Git по категориям: создание (init, clone), отслеживание (add, commit, diff), ветки (branch, switch), синхронизация (fetch, pull, push).","Основные команды Git: шпаргалка для собеседования — Gymterview","Полный список команд Git по категориям: создание, отслеживание, ветки, синхронизация. Разница pull vs fetch, switch vs checkout.",[26,27,28,29,30,31,32,33,34,35],"команды Git","git init","git clone","git add","git commit","git push","git pull","git fetch","git switch","собеседование","Основные команды: init\u002Fclone (создание), status\u002Fdiff\u002Fadd\u002Fcommit\u002Flog (отслеживание), branch\u002Fswitch\u002Fcheckout (ветки), fetch\u002Fpull\u002Fpush\u002Fremote (синхронизация), merge\u002Frebase (слияние), stash (временное сохранение). Важно: pull = fetch + merge, switch (Git 2.23+) — безопасная замена checkout, git add . — текущая директория, git add -A — весь репозиторий.",true]