Я работаю в филиале под названием blaBla. master
получает тонну от других. Чтобы обновить blaBla с помощью master, я часто использую git pull master и объединяю его в blaBla. Но это захламляет мою ветку с тонны коммитов. Я хочу объединить все совершает то, что произошло с мастером в один, а затем объединить его в мою ветку. Поэтому, когда я делаю git log
, я вижу только коммиты, принадлежащие этой ветке, и те, которые являются единственными слияниями. Больше ничегоGit коммит комет до слияния
ответ
Я хочу объединить все новые коммиты, которые произошли в master, в один, а затем объединить его в мою ветку.
Вы действительно не хотите этого делать. Единственные разумные варианты для приведения изменений из master
в полнометражной отрасль:
ли нормальный
git merge master
без раздавливания его совершающего, так что Git может сказать, который совершает свой художественный филиал имеет общего сmaster
(в противном случае вы будете вероятно, страдают от многочисленных конфликтов слияния). В противном случае все новые изменения в вашем сжатом объединении будут казаться, что они были частью вашей новой функции - нехорошо.Сделайте
git rebase master
, чтобы переделать изменения вашей ветви в верхней части отmaster
. Это мой предпочтительный рабочий процесс, поскольку он структурирует ваши изменения как «изменения сmaster
», независимо от того, с чего вы начали работать, но он связан со всеми обычными рисками перезаписи истории (например, общайтесь очень внимательно, если вы собираетесьgit push --force
ветвь, от которой зависят другие).
Update, чтобы отразить принятый ответ: Или изменить, как вы визуализируя фиксации. git log --first-parent
скроет коммиты, которые были объединены в текущую ветку. Хотя обычно используется для визуализации master
(сгенерированные ветви признака), он также будет работать для исключения master
коммитов, которые были объединены в ветвь функции.
Кажется, есть несколько способов сделать это, но это может привести к тому, что ваши изменения станут намного сложнее, если вы делаете это только локально. Git действительно не нравится история переписывается на всех
Как вы уже упоминали, история изменения - это большой нет-нет. Я не хочу изменять мастер. Просто соедините свои коммиты с целью слияния с моей веткой и ничего не трогайте. Возможно, это больше похоже на визуализацию git log, чем на самом деле сочетание коммитов. Поэтому, когда вы делаете 'git log', вы видите только мои коммиты, события с одним объединением и соответствующие исправления для конфликтов слияния. никакие другие тысячи попыток увидеть –
Так в обеих из них я загромождать свою местную ветвь с тысячами фиксаций, которые произошли в мастере. Как я могу отслеживать мои изменения в ветке, которые затем касаются небольшой директории в главном? И если вы совершаете частые слияния после нескольких моментов каждый раз, чтобы прокручивать свой commtis, кажется невыполнимой задачей, если прокрутка тысяч мастеров не будет найдена в ваших филиалах –
Все, что мне нужно, это увидеть мои коммиты, одноединые коммиты и соответствующие исправления для конфликтов слияния ничем иным. Как мне это сделать? –
Один из вариантов заключается в том, чтобы использовать 'git log -first-parent', чтобы посмотреть на вашу ветку - вы увидите« Мастер объединения »в blaBlah (и его разрешения конфликтов), но не коммиты, которые были объединены. Я не понимаю комментарий «cluttering my local branch» в отношении 'rebase' - если вы думаете о ветвях как« изменениях, так как ветвление от «master» (т.е. 'git log master..'), post -rebase 'вы будете продолжать видеть ту же серию коммитов. – dahlbyk