Есть ли правильный способ выборочно удалить коммиты git?

git git-branch branching-and-merging git-commit

33 просмотра

1 ответ

Допустим, у меня есть ветки a MASTERи DEV, одна со стабильной / выпущенной версией (master) кода, другая нестабильная (dev) с незавершенной работой.

Я начал кодировать ветвление тестового набора из DEV, которое теперь должно быть включено (или "выпущено") в master.

Проблема в том, что некоторое время ветвь постоянно обновлялась с помощью DEV, и теперь есть объединенные коммиты из других веток, которые не должны быть объединены с MASTER.

Коммиты правильно помечены, и мы точно знаем, кто они.

Новый код, который будет включен в релиз, является частью набора тестов, поэтому он не меняет исходный код, поэтому не должно возникнуть каких-либо серьезных проблем при откате всех нежелательных изменений / фиксаций из исходного кода.

Вопрос (ы) будет:

Существует ли заранее определенная методология для этого? И где изложена эта методология, если таковая имеется?

Я могу немного изучить git, чтобы найти «мой способ» сделать это безопасно, но это звучит как классический случай чего-то, что может произойти в любом стандартном процессе разработки, и, по моему опыту, обычно уже есть предопределенная методология, обрисованная в общих чертах бывшими (и героическими) разработчиками в поисках надежной методологии разработки.

Если методология не доступна или не известна, любые советы будут оценены.

Автор: Amy Pellegrini Источник Размещён: 30.10.2019 05:01

Ответы (1)


1 плюс

Решение

Вы в порядке с изменением истории вашей ветви? Если так, я мог бы рекомендовать интерактивную перебазирование вашей ветки.

git rebase -i <commit_hash>

Хэш коммита - это первый коммит, который вы сделали в своей ветке. Вы можете выбрать коммиты, которые вам интересны, и пропустить те, которые вам не нужны (просто удалите строку, если вы не хотите коммит). После интерактивного перебазирования у вас будет ветка, содержащая только коммиты, которые вы хотите объединить с мастером.

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

Автор: mkasberg Размещён: 05.05.2016 02:50
Вопросы из категории :
32x32