Как сделать патч для одного тега с помощью Git? - PullRequest
1 голос
/ 17 декабря 2010

Мы используем git для управления нашим кодом и просто создаем один тег при выпуске новой версии. Так что, если мы

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

Кстати: мы не используем ветку mutil, потому что хотели бы упростить процесс

Ответы [ 2 ]

8 голосов
/ 17 декабря 2010

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

  • Извлеките тег выпуска.

  • Сделайте исправление, зафиксируйте, повторно пометите иотпустите исправление.

  • Перебазируйте мастер из вашего нового тега.

Это вставит ваше исправление в график времени (избегая ветвлений, которые вы 'мы линеаризовали ваш график коммитов) сразу после релиза.

Обновление

Как отмечает @cdhowie в комментариях, «этот подход не будет работать без проблем, если клонирование репо более чем у одного разработчика,так как это изменит историю и потребует принудительного толчка ».См. Раздел справочной страницы git-rebase с наклоном «Восстановление из исходной ребазы», ​​где говорится:

Перебазирование (или любая другая форма переписывания) ветки, над которой работают другие, плохоИдея: любой, находящийся ниже по течению, вынужден вручную исправлять свою историю.В этом разделе объясняется, как это исправить с точки зрения нижестоящего.Реальное исправление, однако, было бы в первую очередь избежать перебазирования восходящего потока.

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

6 голосов
/ 17 декабря 2010

Используйте ветку для каждого выпуска, в которую можно вносить исправления.Это самый простой способ управления выпусками.

... И если вы не хотите использовать функцию ветвления в Git, почему вы не используете что-то с графическим интерфейсом, например Subversion?Если простота вашей VCS является проблемой, Git - неправильный выбор.Если интересны отличные возможности ветвления, Git - идеальный выбор.

...