← Все темы
Git
Вопросов: 29
Система контроля версий (VCS) — это инструмент, позволяющий управлять изменениями в исходном коде проекта. Она обеспечивает возможность отслеживания истории изменений, сотрудничества между разработчиками и восстановления предыдущих версий при необходимости. Самая распространённая VCS сегодня — Git.
Основные функции VCS:
- Управление историей изменений
- Совместная работа над кодом
- Восстановление предыдущих версий
- Ветвление и слияние
Примеры систем контроля версий:
Основные функции VCS:
- Управление историей изменений
- Совместная работа над кодом
- Восстановление предыдущих версий
- Ветвление и слияние
Примеры систем контроля версий:
GitSubversion (SVN)Mercurial
Git — это распределённая система управления версиями, созданная для эффективного и надёжного отслеживания изменений в исходном коде проектов. Она позволяет множеству разработчиков одновременно работать над одним проектом, сохраняя историю всех изменений и облегчая совместную работу.
Причины, по которым Git обогнал конкурентов:
- Распределённая архитектура: Каждый разработчик имеет полную копию репозитория, что обеспечивает высокую скорость операций и надёжность.
- Мощные возможности ветвления и слияния: Git делает создание, переключение и слияние веток быстрыми и простыми, поддерживая эффективную работу над разными функциями параллельно.
- Высокая производительность: Быстрое выполнение большинства операций благодаря оптимизированной структуре данных.
- Гибкость: Поддержка различных рабочих процессов и интеграция с множеством инструментов разработки.
- Большое сообщество и поддержка: Широкое распространение и активное развитие, что обеспечивает постоянное улучшение и доступность ресурсов для обучения и решения проблем.
Эти преимущества сделали Git предпочтительным выбором для большинства проектов по разработке программного обеспечения.
Причины, по которым Git обогнал конкурентов:
- Распределённая архитектура: Каждый разработчик имеет полную копию репозитория, что обеспечивает высокую скорость операций и надёжность.
- Мощные возможности ветвления и слияния: Git делает создание, переключение и слияние веток быстрыми и простыми, поддерживая эффективную работу над разными функциями параллельно.
- Высокая производительность: Быстрое выполнение большинства операций благодаря оптимизированной структуре данных.
- Гибкость: Поддержка различных рабочих процессов и интеграция с множеством инструментов разработки.
- Большое сообщество и поддержка: Широкое распространение и активное развитие, что обеспечивает постоянное улучшение и доступность ресурсов для обучения и решения проблем.
Эти преимущества сделали Git предпочтительным выбором для большинства проектов по разработке программного обеспечения.
Репозиторий в Git — это хранилище, которое содержит все файлы проекта и историю их изменений. Он позволяет разработчикам отслеживать версии кода, управлять изменениями и сотрудничать с другими участниками проекта.
Основные назначения репозитория:
- Отслеживание и сохранение изменений в файлах проекта
- Управление версиями кода, что позволяет возвращаться к предыдущим состояниям
- Облегчение совместной работы между разработчиками
- Ведение истории разработки для анализа и оптимизации процессов
Пример инициализации репозитория:
Основные назначения репозитория:
- Отслеживание и сохранение изменений в файлах проекта
- Управление версиями кода, что позволяет возвращаться к предыдущим состояниям
- Облегчение совместной работы между разработчиками
- Ведение истории разработки для анализа и оптимизации процессов
Пример инициализации репозитория:
git init
Git — это распределённая система контроля версий, которая позволяет разработчикам отслеживать изменения в коде, управлять историей разработки и работать над проектами одновременно.
GitHub — это облачная платформа для хостинга Git репозиториев. Она предоставляет инструменты для совместной работы, такие как управление задачами, код-ревью, вики и интеграцию с другими сервисами.
Основные различия:
- Git — это инструмент для управления версиями кода
- GitHub — это сервис, основанный на Git, для хранения и совместной работы над репозиториями
GitHub — это облачная платформа для хостинга Git репозиториев. Она предоставляет инструменты для совместной работы, такие как управление задачами, код-ревью, вики и интеграцию с другими сервисами.
Основные различия:
- Git — это инструмент для управления версиями кода
- GitHub — это сервис, основанный на Git, для хранения и совместной работы над репозиториями
Origin в Git — это стандартное имя удалённого репозитория, с которого был клонирован проект. Оно служит для ссылки на основной репозиторий, куда обычно выполняются операции
-
-
-
Origin облегчает взаимодействие с удалённым хранилищем, позволяя быстро синхронизировать изменения между локальной и удалённой версиями проекта.
push и pull. Примеры использования:-
git remote add origin https://github.com/пользователь/репозиторий.git-
git push origin main-
git pull origin developOrigin облегчает взаимодействие с удалённым хранилищем, позволяя быстро синхронизировать изменения между локальной и удалённой версиями проекта.
.gitignore файл используется для определения файлов и директорий, которые Git должен игнорировать при отслеживании изменений. Основные цели использования
- Исключение временных файлов: Например, файлы компиляции, кэшированные данные, временные файлы редакторов.
- Сохранение конфиденциальности: Файлы с секретными ключами, паролями или другими чувствительными данными.
- Упрощение управления проектом: Исключение больших файлов или артефактов сборки, которые не нужны в репозитории.
- Оптимизация производительности: Снижение размера репозитория за счёт исключения ненужных файлов.
Файл
Пример содержимого
.gitignore:- Исключение временных файлов: Например, файлы компиляции, кэшированные данные, временные файлы редакторов.
- Сохранение конфиденциальности: Файлы с секретными ключами, паролями или другими чувствительными данными.
- Упрощение управления проектом: Исключение больших файлов или артефактов сборки, которые не нужны в репозитории.
- Оптимизация производительности: Снижение размера репозитория за счёт исключения ненужных файлов.
Файл
.gitignore содержит шаблоны путей, которые соответствуют файлам и папкам, подлежащим игнорированию Git.Пример содержимого
.gitignore:.env
__pycache__/
*.log
.DS_Store
Ветка в системах контроля версий, таких как Git, представляет собой независимую линию разработки. Она позволяет работать над различными функциями, исправлениями или экспериментальными изменениями, не затрагивая основную кодовую базу.
Зачем нужна ветка:
- Изолированная разработка: Позволяет разработчикам работать над новыми функциями или исправлениями багов без влияния на стабильную версию проекта.
- Упрощение коллаборации: Несколько разработчиков могут параллельно работать над разными задачами.
- Управление версиями: Легко переключаться между различными версиями кода, тестировать и интегрировать изменения.
Таким образом, использование веток способствует более организованному и эффективному процессу разработки.
Зачем нужна ветка:
- Изолированная разработка: Позволяет разработчикам работать над новыми функциями или исправлениями багов без влияния на стабильную версию проекта.
- Упрощение коллаборации: Несколько разработчиков могут параллельно работать над разными задачами.
- Управление версиями: Легко переключаться между различными версиями кода, тестировать и интегрировать изменения.
git checkout -b feature/new-feature
Таким образом, использование веток способствует более организованному и эффективному процессу разработки.
Команда
- Обновление удалённой ветки: Передача ваших коммитов в удалённый репозиторий.
- Сотрудничество: Деление изменений с командой разработчиков.
- Интеграция: Подготовка кода для совместной работы и последующего слияния.
Пример использования:
Здесь
git push используется в системе контроля версий Git для отправки локальных изменений в удалённый репозиторий. Это позволяет синхронизировать вашу работу с другими разработчиками и хранить резервные копии кода. Основные цели команды push:- Обновление удалённой ветки: Передача ваших коммитов в удалённый репозиторий.
- Сотрудничество: Деление изменений с командой разработчиков.
- Интеграция: Подготовка кода для совместной работы и последующего слияния.
Пример использования:
git push origin main
Здесь
origin — имя удалённого репозитория, а main — ветка, в которую отправляются изменения.
Команда
Основные действия:
- Получение последних изменений из удалённого репозитория
- Объединение этих изменений с локальной веткой
Синтаксис:
Пример использования:
В этом примере команда
git pull используется для обновления текущей ветки из удалённого репозитория и автоматического объединения изменений.Основные действия:
- Получение последних изменений из удалённого репозитория
- Объединение этих изменений с локальной веткой
Синтаксис:
git pull [опции] [удалённый репозиторий] [ветка]Пример использования:
git pull origin mainВ этом примере команда
git pull извлекает изменения из ветки main удалённого репозитория origin и объединяет их с текущей локальной веткой.
Команда
- Копирует все файлы, историю коммитов и ветки из удалённого репозитория
- Настраивает удалённый источник как origin
- Позволяет начать работу с проектом на локальной машине
Пример использования:
git clone используется для создания локальной копии удалённого репозитория. Она:- Копирует все файлы, историю коммитов и ветки из удалённого репозитория
- Настраивает удалённый источник как origin
- Позволяет начать работу с проектом на локальной машине
Пример использования:
git clone https://github.com/user/repository.git
Команда
- Инициализирует новый Git-репозиторий в текущей директории.
- Создаёт скрытую папку
- Позволяет начать отслеживание изменений в проекте.
git init выполняет следующие действия:- Инициализирует новый Git-репозиторий в текущей директории.
- Создаёт скрытую папку
.git, содержащую все необходимые файлы для отслеживания версий.- Позволяет начать отслеживание изменений в проекте.
Команда
Основные функции команды
- Добавление новых файлов в отслеживаемые.
- Обновление изменений в существующих файлах.
- Удаление файлов из индекса.
Пример использования:
После этого вы можете выполнить
git add используется для добавления изменений в область индексации (staging area) в системе контроля версий Git. Это необходимо для подготовки изменений перед выполнением коммита.Основные функции команды
git add:- Добавление новых файлов в отслеживаемые.
- Обновление изменений в существующих файлах.
- Удаление файлов из индекса.
Пример использования:
git add myfile.pyПосле этого вы можете выполнить
git commit, чтобы сохранить изменения в репозитории.
Индекс в Git представляет собой стадию, где изменения фиксируются перед коммитом. Он служит промежуточной областью между рабочей директорией и репозиторием, позволяя подготовить набор изменений для последующего сохранения.
Основные операции с индексом:
- Добавление изменений в индекс:
- Удаление изменений из индекса:
- Просмотр состояния индекса:
Пример использования:
Этот процесс позволяет контролировать, какие изменения будут включены в следующий коммит, обеспечивая более гибкое управление версионностью проекта.
Основные операции с индексом:
- Добавление изменений в индекс:
git add- Удаление изменений из индекса:
git reset- Просмотр состояния индекса:
git statusПример использования:
# Добавить файл в индекс
git add файл.py
# Просмотреть статус
git status
# Закоммитить изменения
git commit -m "Добавить новый функционал"
Этот процесс позволяет контролировать, какие изменения будут включены в следующий коммит, обеспечивая более гибкое управление версионностью проекта.
-
- Показывает изменения, готовые к коммиту, изменённые файлы и неотслеживаемые файлы.
- Помогает понять текущий статус репозитория и необходимые действия.
git status отображает состояние рабочего каталога и индекса.- Показывает изменения, готовые к коммиту, изменённые файлы и неотслеживаемые файлы.
- Помогает понять текущий статус репозитория и необходимые действия.
Команда
- Основные возможности:
- Удаление файлов, которые не находятся под контролем версий.
- Очистка директорий вместе с их содержимым.
- Предварительный просмотр файлов, которые будут удалены.
- Часто используемые опции:
-
-
-
- Примеры использования:
Предупреждение: Команда
git clean используется для удаления неотслеживаемых файлов и директорий из рабочего каталога в Git.- Основные возможности:
- Удаление файлов, которые не находятся под контролем версий.
- Очистка директорий вместе с их содержимым.
- Предварительный просмотр файлов, которые будут удалены.
- Часто используемые опции:
-
-n: Показывает, какие файлы будут удалены, без фактического удаления.-
-f: Форсирует удаление файлов.-
-d: Удаляет не только файлы, но и директории.- Примеры использования:
# Просмотреть, какие файлы будут удалены
git clean -n
# Удалить неотслеживаемые файлы
git clean -f
# Удалить неотслеживаемые файлы и директории
git clean -fd
Предупреждение: Команда
git clean удаляет файлы без возможности восстановления. Перед использованием рекомендуется использовать опцию -n.
Коммит в Git — это фиксирование изменений в репозитории. Каждый коммит сохраняет текущее состояние проекта, позволяя отслеживать историю изменений и возвращаться к предыдущим версиям при необходимости.
Основные характеристики коммита:
- Снимок файлов на момент коммита.
- Уникальный хеш-идентификатор.
- Сообщение, описывающее внесённые изменения.
Пример создания коммита:
Коммиты обеспечивают структурированное и управляемое развитие проекта, позволяя команде разработчиков эффективно сотрудничать.
Основные характеристики коммита:
- Снимок файлов на момент коммита.
- Уникальный хеш-идентификатор.
- Сообщение, описывающее внесённые изменения.
Пример создания коммита:
git commit -m "Добавлен новый функционал авторизации"Коммиты обеспечивают структурированное и управляемое развитие проекта, позволяя команде разработчиков эффективно сотрудничать.
Команда
- Объединение функциональных веток в основную ветку проекта
- Интеграция обновлений из удалённых репозиториев
- Управление параллельной разработкой без потери данных
Пример использования:
При выполнении
git merge используется для объединения изменений из одной ветки в другую. Она позволяет интегрировать работу нескольких разработчиков, сохраняя историю коммитов. Основные преимущества использования git merge:- Объединение функциональных веток в основную ветку проекта
- Интеграция обновлений из удалённых репозиториев
- Управление параллельной разработкой без потери данных
Пример использования:
git checkout main
git merge feature-branch
При выполнении
git merge Git автоматически объединяет изменения и, при необходимости, создаёт новый коммит слияния, обеспечивая согласованность кода в проекте.
Конфликт в Git возникает, когда Git не может автоматически объединить изменения из разных веток. Это происходит, если в одних и тех же строках файла были внесены разные изменения в разных ветках.
Как разрешить конфликт:
- Обнаружение конфликта: При попытке слияния веток с помощью команды
- Просмотр конфликтующих файлов: Используйте
- Редактирование файлов: Откройте конфликтующие файлы и вручную внесите необходимые изменения, удалив маркеры конфликтов:
- Добавление исправленных файлов: После разрешения конфликтов выполните
- Завершение слияния: Завершите процесс слияния командой
Пример разрешения конфликта:
Как разрешить конфликт:
- Обнаружение конфликта: При попытке слияния веток с помощью команды
git merge, Git уведомит о наличии конфликта.- Просмотр конфликтующих файлов: Используйте
git status, чтобы увидеть, какие файлы содержат конфликты.- Редактирование файлов: Откройте конфликтующие файлы и вручную внесите необходимые изменения, удалив маркеры конфликтов:
- Добавление исправленных файлов: После разрешения конфликтов выполните
git add <файл>.- Завершение слияния: Завершите процесс слияния командой
git commit.Пример разрешения конфликта:
# Открываем файл с конфликтом и редактируем его
nano example.py
# После редактирования добавляем файл
git add example.py
# Завершаем слияние
git commit -m "Разрешен конфликт в example.py"
git checkout — команда в системе контроля версий Git, используемая для:
- Переключения между ветками.
- Создания и переключения на новую ветку.
- Восстановления файлов из определённого коммита.
Эта команда позволяет управлять состоянием рабочего каталога и историей проекта.
- Переключения между ветками.
git checkout имя_ветки- Создания и переключения на новую ветку.
git checkout -b новая_ветка- Восстановления файлов из определённого коммита.
git checkout коммит_хеш -- путь/к/файлуЭта команда позволяет управлять состоянием рабочего каталога и историей проекта.
git stash — это команда в системе контроля версий Git, которая позволяет временно сохранить незакоммиченные изменения в рабочем каталоге и вернуть его к чистому состоянию. Это особенно полезно, когда нужно переключиться на другую ветку без потери текущей работы.
Основные команды:
-
-
-
-
Пример использования:
Основные команды:
-
git stash — сохраняет текущие изменения-
git stash apply — восстанавливает последние сохранённые изменения-
git stash list — отображает список всех сохранённых стэшей-
git stash drop — удаляет выбранный стэшПример использования:
git stash
git checkout <branch>
git stash apply
Команда
Пример использования:
Это извлечет все изменения из удаленного репозитория origin.
git fetch загружает последние изменения из удаленного репозитория без автоматического слияния с текущей веткой. Она обновляет удаленные ссылки, позволяя вам просмотреть новые коммиты и интегрировать их вручную при необходимости.Пример использования:
git fetch originЭто извлечет все изменения из удаленного репозитория origin.
Pull реквест — это инструмент в системах контроля версий, таких как Git, который используется для предложения изменений в кодовой базе проекта. Он необходим по следующим причинам:
- Код-ревью: Позволяет коллегам просматривать и обсуждать изменения перед их интеграцией, что способствует повышению качества кода.
- Контроль качества: Обеспечивает проверку соответствия новых изменений принятому стилю кодирования и стандартам проекта.
- Сотрудничество: Упрощает совместную работу над проектом, позволяя нескольким разработчикам вносить изменения параллельно.
- Отслеживание изменений: Позволяет вести историю изменений, делать откаты при необходимости и анализировать эволюцию проекта.
- Автоматизация: Интегрируется с системами непрерывной интеграции и развертывания, что позволяет автоматически тестировать и применять изменения.
Таким образом, pull реквесты способствуют улучшению качества кода, упрощают совместную работу и обеспечивают прозрачность процесса разработки.
- Код-ревью: Позволяет коллегам просматривать и обсуждать изменения перед их интеграцией, что способствует повышению качества кода.
- Контроль качества: Обеспечивает проверку соответствия новых изменений принятому стилю кодирования и стандартам проекта.
- Сотрудничество: Упрощает совместную работу над проектом, позволяя нескольким разработчикам вносить изменения параллельно.
- Отслеживание изменений: Позволяет вести историю изменений, делать откаты при необходимости и анализировать эволюцию проекта.
- Автоматизация: Интегрируется с системами непрерывной интеграции и развертывания, что позволяет автоматически тестировать и применять изменения.
Таким образом, pull реквесты способствуют улучшению качества кода, упрощают совместную работу и обеспечивают прозрачность процесса разработки.
Revert — это операция в системах контроля версий, таких как
Зачем он нужен?
- Возврат к стабильному состоянию проекта после внесения ошибок
- Отмена нежелательных изменений без удаления истории коммитов
- Восстановление функциональности после некорректных обновлений
- Упрощение управления версиями при совместной разработке
Git, которая позволяет отменить изменения, внесённые в определённый коммит, создавая новый коммит с противоположными изменениями.Зачем он нужен?
- Возврат к стабильному состоянию проекта после внесения ошибок
- Отмена нежелательных изменений без удаления истории коммитов
- Восстановление функциональности после некорректных обновлений
- Упрощение управления версиями при совместной разработке
Reverting и resetting — это две разные команды в Git, используемые для отмены изменений, но они действуют по-разному и имеют разные последствия.
- git revert
- Создаёт новый коммит, который отменяет изменения, внесённые указанным предыдущим коммитом.
- Сохраняет историю проекта неизменной.
- Безопасен для использования в общих ветках, так как не переписывает историю.
- Пример использования:
- git reset
- Перемещает указатель текущей ветки на указанный коммит.
- Может изменять историю коммитов, что может привести к потере данных, если используется неправильно.
- Не рекомендуется использовать в общих ветках, так как переписывает историю и может вызвать конфликты у других разработчиков.
- Имеет разные режимы:
- Пример использования:
Основные отличия:
- git revert безопасен для совместной работы и сохраняет историю, создавая новый коммит.
- git reset переписывает историю коммитов и может привести к потере данных, поэтому используется с осторожностью.
- git revert
- Создаёт новый коммит, который отменяет изменения, внесённые указанным предыдущим коммитом.
- Сохраняет историю проекта неизменной.
- Безопасен для использования в общих ветках, так как не переписывает историю.
- Пример использования:
git revert <commit_hash>- git reset
- Перемещает указатель текущей ветки на указанный коммит.
- Может изменять историю коммитов, что может привести к потере данных, если используется неправильно.
- Не рекомендуется использовать в общих ветках, так как переписывает историю и может вызвать конфликты у других разработчиков.
- Имеет разные режимы:
--soft: сохраняет изменения в индексе.--mixed (по умолчанию): сохраняет изменения в рабочем каталоге.--hard: удаляет все изменения.- Пример использования:
git reset --hard <commit_hash>Основные отличия:
- git revert безопасен для совместной работы и сохраняет историю, создавая новый коммит.
- git reset переписывает историю коммитов и может привести к потере данных, поэтому используется с осторожностью.
HEAD в Git представляет собой указатель на текущий коммит, который является базой для новых коммитов. Обычно
HEAD ссылается на последний коммит в активной ветке, но может также указывать непосредственно на определённый коммит, что называется detached HEAD.
Команда
- Маркировки важных точек в истории репозитория, таких как релизы версий.
- Создания удобных ссылок на определённые коммиты, что облегчает навигацию.
- Упрощения управления версиями, позволяя быстро идентифицировать и переключаться между выпусками.
Пример использования:
Это создаст аннотированный тег
Как переключиться на тег:
git tag используется для:- Маркировки важных точек в истории репозитория, таких как релизы версий.
- Создания удобных ссылок на определённые коммиты, что облегчает навигацию.
- Упрощения управления версиями, позволяя быстро идентифицировать и переключаться между выпусками.
Пример использования:
git tag -a v1.0 -m "Первый релиз"Это создаст аннотированный тег
v1.0 с сообщением "Первый релиз".Как переключиться на тег:
git checkout <имя_тега>
Git Merge и Git Rebase — это две команды, используемые для интеграции изменений из одной ветки в другую, но они делают это разными способами:
- Git Merge:
- Создает новый коммит слияния, сохраняя историю веток неперекрытой.
- Полезен для сохранения всей истории разработки.
- Команда:
- Git Rebase:
- Перемещает или переигрывает серию коммитов на новую базу.
- Делает историю более линейной и чистой.
- Команда:
Основные отличия:
- История: Merge сохраняет ветвления и слияния, тогда как Rebase выравнивает историю в одну линию.
- Конфликты: При Merge конфликты решаются в одном коммите слияния, при Rebase — на каждом отдельном коммите.
- Использование: Merge часто используется для интеграции завершенных веток, Rebase — для обновления локальной ветки перед слиянием или для чистки истории коммитов.
Когда использовать:
- Используйте merge, когда важно сохранить полную историю изменений и видеть точки слияния.
- Используйте rebase, когда хотите иметь чистую, линейную историю без дополнительных коммитов слияния.
- Git Merge:
- Создает новый коммит слияния, сохраняя историю веток неперекрытой.
- Полезен для сохранения всей истории разработки.
- Команда:
git merge <ветка>- Git Rebase:
- Перемещает или переигрывает серию коммитов на новую базу.
- Делает историю более линейной и чистой.
- Команда:
git rebase <ветка>Основные отличия:
- История: Merge сохраняет ветвления и слияния, тогда как Rebase выравнивает историю в одну линию.
- Конфликты: При Merge конфликты решаются в одном коммите слияния, при Rebase — на каждом отдельном коммите.
- Использование: Merge часто используется для интеграции завершенных веток, Rebase — для обновления локальной ветки перед слиянием или для чистки истории коммитов.
Когда использовать:
- Используйте merge, когда важно сохранить полную историю изменений и видеть точки слияния.
- Используйте rebase, когда хотите иметь чистую, линейную историю без дополнительных коммитов слияния.
Git hook — это механизм в системе контроля версий Git, позволяющий автоматически выполнять определённые действия при наступлении различных событий в репозитории. Git hooks представлены скриптами, которые находятся в каталоге
- Предварительной проверки кода перед коммитом
- Автоматического запуска тестов
- Форматирования кода
- Отправки уведомлений
- И других автоматизированных задач
Например, чтобы проверить наличие ссылки на задачу в сообщении коммита, можно использовать commit-msg hook:
Этот скрипт предотвратит создание коммита, если сообщение не содержит
.git/hooks и могут использоваться для:- Предварительной проверки кода перед коммитом
- Автоматического запуска тестов
- Форматирования кода
- Отправки уведомлений
- И других автоматизированных задач
Например, чтобы проверить наличие ссылки на задачу в сообщении коммита, можно использовать commit-msg hook:
#!/bin/bash
if ! grep -q "JIRA-" "$1"; then
echo "Сообщение коммита должно содержать ссылку на задачу JIRA."
exit 1
fi
Этот скрипт предотвратит создание коммита, если сообщение не содержит
JIRA-.
git cherry-pick используется для выборочного применения отдельных коммитов из одной ветки в другую. Это позволяет:
- Переносить конкретные изменения без слияния всей ветки
- Внедрять исправления или новые функции из другой ветки
- Управлять историей проекта более гибко
Например, чтобы применить коммит с хешем
Это действие добавит изменения из указанного коммита в текущую ветку.
- Переносить конкретные изменения без слияния всей ветки
- Внедрять исправления или новые функции из другой ветки
- Управлять историей проекта более гибко
Например, чтобы применить коммит с хешем
abc123, используйте:git cherry-pick abc123Это действие добавит изменения из указанного коммита в текущую ветку.