GIT Cherry-pick - Когда и как использовать GIT Cherry-pick с примером?

Содержание:

Anonim

Введение в GIT Cherry-pick

В этой статье мы подробно узнаем о GIT Cherry-pick. Есть много программистов, работающих над одной и той же разработкой программного обеспечения из разных уголков мира. Тогда как управлять кодами? Как они заставят других понять, какие изменения они внесли? Как зафиксировать коды и поддерживать разные версии? Как объединить коды?

Чтобы решить эти проблемы, GIT вошла в мир разработки. GIT является выдающейся системой управления исходным кодом (SCM) и распределенной системой контроля версий. GIT был создан Linux Torvald, человеком, который разработал ядро ​​Linux. Очевидно, что это инструмент с открытым исходным кодом, где каждый программист может внести свой вклад в создание программного обеспечения из любой точки мира.

GIT имеет много функций. Может иметь несколько ветвей. Разработчик может написать коды после создания своей собственной ветки в локальной системе и объединить ее с основной веткой или другими ветками удаленного GIT-репозитория.

Что такое GIT Cherry-pick?

Представьте себе, продолжается работа над проектом сценария по истории и эволюции сотовых телефонов. Итак, над одним проектом работает много людей, и все работают отдельно. Однако, в конце концов, каждый скрипт будет скомпилирован вместе.

Теперь член А пишет о телефонах Apple и вдруг понимает, что это может быть лучше. Таким образом, он сообщил об этом другим членам команды, которые работают над тем же проектом. Другой член Х сказал ему, что он пишет сценарий на телефонах Android, и попросил члена А посмотреть.

Затем член А изучил сценарий товарища по команде и обнаружил, что некоторые части совпадают с некоторыми действительно хорошими изменениями. Поэтому он выбрал эти изменения и вставил в свой сценарий. Это то же самое, что Cherry-Pick называет в GIT в области программного обеспечения.

Git-cherry-pick - это мощная команда git, а cherry-pick - это процесс получения коммита из ветки и применения его к какой-либо другой ветке. Проще говоря, может быть несколько веток, в которых разработчики фиксируют свои коды. Теперь один разработчик должен зафиксировать свои коды в ветви A, однако он по ошибке зафиксировал коды в ветви B. В этот раз cherry-pick может переключить коммит на правильную ветку.

Используйте команду ниже (в системе Unix), чтобы узнать различные опции для git-cherry-pick,

Команда:

$man git-cherry-pick

Синтаксис для команды cherry-pick,

Синтаксис:

git cherry-pick (–edit) (-n) (-m parent-number) (-x)

Когда мы используем GIT Cherry-pick?

Git-cherry-pick - это полезный инструмент, но не всегда лучший метод. git-cherry-pick можно использовать в следующих сценариях,

  • Чтобы исправить это, когда коммит случайно сделан в другой ветке.
  • Предпочтительные традиционные слияния
  • Чтобы применить изменения в существующем коммите.
  • Дублировать коммит
  • Исправление ошибок

Как работает GIT Cherry-pick?

Обнаружен дефект в коде в производственной среде, и необходимо внести исправление. После внесения изменений и исправления дефекта настало время вернуть это изменение кода в среду разработки, чтобы в будущем дефект не возникал снова и снова в производственной среде.

Первый вариант - это простое git merge, и это идеальное решение, если оно работает. Тем не менее, в производственной среде есть и другие изменения, которые не могут быть возвращены в среду разработки при слиянии. И в этом случае вишневый кирка является правильным вариантом.

Cherry-pick приносит тот коммит, который был сделан только для исправления ошибки. Он не выбирает другие коммиты.

Вот иллюстрация,

Рис. 1: G и H - коммиты ветки Production. От A до F Отдел развития коммитов. Проблема найдена в разделе «Производство». В коммите H разработано исправление, которое необходимо применить в ветке Development, но коммита G не требуется применять.

Рисунок 2: Теперь коммит H выбирается в ветке разработки, и в результате коммит H '. Изменения Commit G не включены в ветку Development.

Как использовать GIT Cherry-pick с примером?

Предположим, у нас есть две ветви (master и new_feature) (команда, используемая для просмотра ветви branch-git)

Мы сделали коммит (выделен) в ветке new_feature по ошибке. (команда, используемая для просмотра подтвержденных журналов - git log)

Тем не менее, он должен быть только в основной ветке. Сначала скопируйте выделенный SHA в блокноте.

Теперь мы будем использовать команду git-cherry-pick для перемещения этого коммита в основную ветку, однако перед этим нам нужно переключиться на основную ветку (команда, используемая для переключения проверки ветки-git < branchname > )

(команда использовала git - cherry - pick < commit id > ) (тот же SHA должен быть вставлен, который был скопирован ранее в блокнот с помощью команды git cherry-pick)

Теперь мы видим, что тот же коммит доступен в основной ветке (команда used-git log)

Более подробный пример команд git cherry-pick смотрите по ссылке ниже:

https://git-scm.com/docs/git-cherry-pick

Важные вещи для запоминания

При использовании cherry-pick и работе в команде нужно помнить три вещи.

1. стандартизировать сообщение фиксации: лучше использовать стандартизированное сообщение фиксации и -x, если мы выбираем cherry из публичной ветки.

git cherry-pick -x

Это позволит избежать слияния конфликтов в будущем.

2. скопируйте заметки: иногда у некоторых из «вишневого кирки» есть заметки, и когда мы запускаем «вишневый кирк», они не копируются. Поэтому лучше его использовать.

git notes copy

3. Выберите несколько коммитов, когда они только линейные: мы хотим выбрать несколько коммитов типа G, H (рис. 1), если они линейные, тогда используйте только следующую команду:

git cherry-pick G^..H

Вывод

Предположим, что мы хотим выбрать конкретный коммит из другой ветви и применить к текущей ветви, вот рекомендуемые шаги,

1. Найдите хеш коммита, который нужно сначала выбрать из вишни.

2. Перейдите в ветку назначения.

3. git cherry-pick -x

Разрешите конфликты, если они случаются. Если в исходном коммите есть заметки, их нужно скопировать.

git notes copy

Рекомендуемые статьи

Это руководство по GIT Cherry-pick. Здесь мы обсудим его работу и как использовать git cherry-pick с примерами в деталях. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Git Tools
  2. Git Терминология
  3. Git Checkout Tag
  4. Что такое Git Branch?