В настоящее время мы используем git, и я попытался найти разумный рабочий процесс для людей, но в настоящее время есть одна проблема, которую я не знаю, как ее решить.Если при слиянии обратно в основную ветвь возникает конфликт, мы теряем историю в сжатом сообщении коммита, что мы хотим сохранить.Текущий рабочий процесс приведен ниже:
git pull
- Это должно быть сделано в основной ветви. git checkout -b TASK-ID
- Создать новую ветвь для задачи. TASK-ID будет выглядеть примерно так: TASK-101 - Работайте над задачей и фиксируйте изменения по мере необходимости.
- По завершении задачи,
git checkout master
git pull
- Получить любые изменения, которые были сделаны с момента последнего извлечения. - Устранить любые конфликты и убедиться, что текущая версия в мастер-компиляциях.
git merge --squash TASK-ID
- При слиянии все коммиты в ветви обрабатываются как один коммит. git commit
- Добавить любую дополнительную информацию, в частности, TASK-ID , в сообщение о коммите.,Следует отметить, что все сообщения коммита из ветви включены, поэтому они не были потеряны при слиянии. git push
- Перенесите изменения обратно на сервер.
* 1035Немного предыстории: в настоящее время мы не много работаем над этим, мы не часто видим конфликты.Причина сдавленного коммита в том, что у нас есть один коммит для каждой задачи.Таким образом, если наш сервер Bamboo обнаружит проблему со сборкой, мы можем легко привязать ее к задаче и попросить разработчика исправить ее.Кроме того, он сохраняет чистоту основной истории, потому что я, по крайней мере, склонен делать много коммитов.Да, я знаю, что это может измениться, если мы начнем работать с более крупными командами, но это в будущем.
Теперь я понимаю, что в этом случае мы можем просто сделать тягу после слияния, однакоэто не решает проблему полностью, поскольку есть шанс, что одному из наших разработчиков придется временно переключать ветки, чтобы решить проблему или работать с более высоким приоритетом.Я хотел бы видеть, как мы можем достичь того, что я получаю сейчас, не теряя историю коммитов в результате слияния.Я рассмотрел несколько решений с использованием rebase, но ни одно из них не было тем, что я искал.
Итак, подведем итог: у меня есть следующие требования:
- Очистить историюв мастере
- Может видеть изменения в ветке в сообщении для одного коммита
- Сообщение коммита для сдавленного коммита необходимо отредактировать, чтобы в нем был идентификатор задачи, прежде чем коммититьменять.(Поправка тоже может сработать).