Skip to content

Основные команды 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.

  1. Переключитесь на ветку main:
bash
git checkout main
  1. Объедините ветку 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.

  1. Переключитесь на ветку feature:
bash
git checkout feature
  1. Перебазируйте ветку 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)

Содержание доступно по лицензии MIT