0

Так, в репо моя группа использует ежедневно, мы имеем следующий поток:«привидение» фиксирует сообщение при использовании промежуточной ветви?

(постановка является филиалом «по умолчанию»)

feature branch(es) -> PR-> staging branch -> PR -> production branch 

Идея заключается в том, что постановка на место, где многие из а также «выпуск» для производства.

Однако, когда мы открываем PR для производства, мы почти всегда видим много многих «старых» (уже объединенных в производство) сообщений о фиксации. Разница на уровне файлов всегда выглядит хорошо, только с изменениями в стадии постановки, но история сообщений фиксации всегда выключена.

Что нам не хватает? Кто-то не отделяет обновленную стадию? Должны ли мы перестраивать постановку из производства после слияния? Или слияние производства с постановкой, чтобы собрать слияние?

Если это имеет значение, мы, как правило, сквошем время слива в постановку, чтобы сохранить историю на стадии постановки/производства чистой/простой.

+1

Добро пожаловать в переполнение стека! Укажите конкретный пример поведения, которое вы видите, и того, как он отличается от поведения, которое вы ожидаете. Вы можете обратиться в Справочный центр за [как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – palimpsestor

ответ

1

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

Что происходит, так это то, что различия хороши, потому что на самом деле нет ничего плохого, но git не заботится об этом, он заботится о вашей истории совершения. и это кажется перепутанным, и его трудно узнать причину сразу, не глядя на ваше репо. тем не менее, простой способ исправить это - всегда объединить производство в постановку.

лучший способ сделать это - убедиться, что у вас есть одна и та же история фиксации (т. Е. В производстве нет дополнительной старой фиксации, которая отбросила историю фиксации), вы можете сделать это, просто визуализируя свое репо. Вы можете использовать 3rd инструмент партии, или просто запустить

git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all 

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

Смежные вопросы