@Hellek
Люблю говорить и слышать суть

Git как исключить коммиты из истории при слиянии в мастер-ветку?

Приветствую коллеги. Возможно вопрос очевиден, но очевидного ответа я так и не нашел. Предположим у нас есть мастер ветка в которой каждый коммит это выход новой версии/субверсии приложения. При желании добавить новую фичу, я копирую мастер-ветку, и в новой ветке может быть куча коммитов. Далее при слиянии эта куча включается в основную ветку. Как этого избежать? (если знаете как это сделать в SourceTree, вообще крутяк). Добра вам!))
Как нужно:
v 2.0.0
v 1.1.0
v 1.0.0

Как сейчас:
v 2.0.0
... (тут 20 коммитов по переходу на новую версию)
v 1.1.0
fix
API почти допилил, покрыть тестами основной класс
доверстать стили
v 1.0.0

UPD:
- Если коротко, то читайте ответ @fshp
- Если подробней, то читайте комментарии в соседнем решении
  • Вопрос задан
  • 1589 просмотров
Решения вопроса 2
Вам нужен параметр squash.

git merge --squash branch_name

И если для маленьких веток в десяток строк это может быть оправдано, то в остальных случаях голову с плеч за такое.
Ответ написан
padlyuck
@padlyuck
$ (master) git checkout -b feature
#редактируем, коммитим, снова редактируем, опять коммитим
$ (feature) git checkout master
$ (feature) git merge feature --no-ff -m 'v2.0.1'

больше информации здесь https://habrahabr.ru/post/195674/ ищите по тексту no-ff
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы