Пошаговое руководство по созданию чистой и последовательной истории коммитов с помощью 'git rebase'

Ах, представьте себе залитую солнцем кодовую базу, идеальный цифровой лес алгоритмов и логики, где каждая строка кода — это отдельный лист дерева. Но затем вы замечаете их — эти раздражающие, неопрятные кучи журналов коммитов, загромождающие вашу защитную или основную ветку. Это цифровой эквивалент сухих листьев, разбросанных по нетронутой лесной подстилке, каждый из которых кричит: «Я — лишняя часть истории!»

На самом деле я по ошибке отправил множество коммитов в удаленную ветку develop (защитную ветку), тогда как думал, что помещаю в свою функциональную ветку! Итак, мы найдем способ решить эту неприятную проблему или наведем порядок в нашей ветке с помощью git rebase, мощного инструмента, способного превратить вашу историю коммитов в ухоженный сад последовательных обновлений.

Шаг 1. Запустите операцию перебазирования

Вот пример журнала коммитов Git.

Откройте свое верное окно терминала, сияющее как маяк безграничных возможностей. Введите:

git rebase -i HEAD~3

Эта волшебная команда просит Git позволить вам в интерактивном режиме перебазировать три последних коммита.

Шаг 2: Вим и симфония «я»

Ах, Вим! Текстовый редактор — это классика, как марочное вино! Когда откроется интерфейс Vim, нажмите клавишу i. Курсор оживает, как маленький светлячок в летних сумерках, сигнализируя, что вы находитесь в режиме вставки. Теперь измените слово pick перед коммитами, которые вы хотите сжать, на s. Сохраните изменения, нажав Ctrl + c и выйдя из режима вставки. Затем введите :wq и нажмите Enter, чтобы закрыть Vim и сохранить изменения.

Шаг 3: Продолжение саги о Rebase

Затем снова откройте терминал и введите:

git rebase --continue

Новое окно Vim появляется как по волшебству! Здесь вы можете уточнить свое сообщение о коммите, виртуальное перо, где вы записываете рассказ о том, что собой представляли эти сжатые коммиты. Отредактируйте по своему усмотрению, затем сохраните и выйдите, нажав Ctrl + c, а затем :wq.

Шаг 4. Разрешение конфликтов, мирные воины

Во время перебазирования вы можете столкнуться с конфликтами фиксации, например, когда два потока пытаются слиться в реку. Не беспокойся! Просто разрешите эти конфликты и инсценируйте их:

git add .

Шаг 5: Финал и новый рассвет

Запустите git rebase --continue еще раз, завершите третье сообщение о фиксации и сохраните. Вы почти на месте, как альпинист, делающий последний рывок к вершине.

git log

Вы запускаете эту команду и вуаля! Ваши журналы коммитов чисты, как утренняя роса. А теперь грандиозный финал:

git push -f origin YOUR_BRANCH

Ваши недавно очищенные коммиты теперь находятся в вашем удаленном репозитории, будь то GitHub, GitLab или какой-то другой заколдованный лес кода. Ваши журналы коммитов теперь представляют собой аккуратно сложенную стопку листьев, каждый из которых добавляет красоты и контекста в ваш цифровой лес.

Итак, вот оно, руководство, которое не только поможет вам очистить историю коммитов, но и превратит вашу жизнь программиста в блестящее приключение!

Если вам понравилась эта статья, похлопайте меня в ладоши. Это важно для меня. Спасибо!