GIT: Merge or Rebase? What's the difference?

Поделиться
HTML-код
  • Опубликовано: 25 окт 2020
  • В этом видео мы рассмотрим с вами 2 способа, как перенести git коммиты из одной ветки в другую. В этом нам помогут команды Merge и Rebase.
    В чем их отличия, какие сильные и слабые стороны у каждой из них. И чем пользоваться на вашем проекте? Про все это смотрите в нашем видео!
    А вы мержите или ребейзите? Напишите нам внизу в комментариях!
    ---
    Если видео было для вас полезным, ставьте лайк и поделитесь им с друзьями.
    Подписывайтесь на наш канал: bit.ly/fs-ytb
    ---
    Присоединяйтесь к нам в соцсетях:
    FB: / frontendscience
    Instagram Сергея Пузанкова: / puzankovcom
    Заходите на наш сайт: frontend-science.com/
    #git #merge #rebase

Комментарии • 271

  • @kisurov
    @kisurov 3 года назад +194

    На всех собесах, где спрашивали Git, обязательно спрашивали этот вопрос (в теме видео). Спасибо за доходчивое объяснение!

    • @frontendscience
      @frontendscience  3 года назад +18

      Ухты класс! Не знал что такое на собеседованиях спрашивают. Рад что было полезно!

    • @user-it7oq2bt2l
      @user-it7oq2bt2l 3 года назад +3

      Собесы на джуна?

    • @kisurov
      @kisurov 3 года назад +12

      @@user-it7oq2bt2l И на джуна и на мидла. Я их много проходил. Некоторые компании (например Luxoft, Epam) сначала проводят жёсткий собес, а потом на его основании определяют твой уровень.

    • @denisoleksyuk5346
      @denisoleksyuk5346 3 года назад +1

      + мне пару дней назад задали этот вопрос, но до этого я уже посмотрел это видео и ответил на вопрос более менее удачно 🙃

    • @anastasiyaboiko8862
      @anastasiyaboiko8862 2 года назад

      У меня это спросили в епаме на собесе для лабы. Я помнила только что ребейз плохо, а мерж хорошо :D

  • @vasilyh4588
    @vasilyh4588 Год назад +65

    Правила просты - соблюдайте их и будет вам ЩАСТЕ:
    - НИКТО и НИКОГДА не пихает коммиты (push) в чужие ветки - делайте СВОЙ бранч и работайте там спокойно (напомню, что её даже пушить - не обязательно если работаете один).
    - В СВОЮ ветку для получения изменений извне лучше делать Rebase, в любую чужую - не важно чью, не говоря уже про базовые master/develop - только Merge - иначе вам придут и сломают лицо.
    Из этого следует: когда над фичей работают несколько разработчиков - делается отдельная feature-ветка, после чего каждый из них ОБЯЗАН сделать СВОЁ собственное ответвление от этой feature-ветки (Branch) и продолжать работать по стандартным правилам, договариваясь отправляя сообщения: "я сегодня сделаю merge в основную feature ветку - есть возражения?" И после успешного MERGE - второе: "Ребята, я сделал merge в feature ветку - обновитесь".

  • @MrNightingale1989
    @MrNightingale1989 3 года назад +57

    Спасибо! Всегда делал мердж, но после просмотра видео понял, что можно и рибэйз использовать)

    • @frontendscience
      @frontendscience  3 года назад +5

      Рад что было полезно!

    • @MrNightingale1989
      @MrNightingale1989 3 года назад

      @@frontendscience в прошлом видео видел, что ты используешь элиас lg для вывода гит лога. Какие ещё используешь?
      Я кроме lg ещё last добавил себе для вывода последнего коммита.
      Спасибо!

  • @inaccessibleJr
    @inaccessibleJr 3 года назад +51

    Очень красивое видео, прям как елочка.
    Спасибо за видео

    • @frontendscience
      @frontendscience  3 года назад +2

      Старалси :)

    • @atlantatesla9348
      @atlantatesla9348 2 года назад

      Мне тоже понравился момент с елочкой 👍

  • @petroboiko3019
    @petroboiko3019 2 года назад +7

    Все чаще возвращаюсь на этот канал для заполнения пробелов в своих знаниях.

    • @frontendscience
      @frontendscience  2 года назад +1

      Рад слышать:) успехов Вам!

  • @user-ug1vi3bv1f
    @user-ug1vi3bv1f Год назад +2

    Как же доступно автор всё объяснил! Спасибо!

  • @andyanderson222
    @andyanderson222 2 года назад +8

    Оочень четкое и понятное объяснение! Большое Вам спасибо!

  • @RinMagnetic
    @RinMagnetic 3 года назад +4

    Огромное спасибо за видео. Наконец-то получилось найти простое и доступное объяснение про эти команды.

  • @gerasim_vol
    @gerasim_vol 3 года назад +11

    посмотрел 5 видео по этой теме, только на вашем понял. спасибо, подписался

    • @frontendscience
      @frontendscience  3 года назад +1

      Очень вдохновляет! Спасибо за обратную связь! Будем еще больше стараться)

  • @DmitryYaskov
    @DmitryYaskov 2 года назад

    великолепное объяснение и прекрасная подача материала! спасибо!

  • @user-cn3zn4gi8o
    @user-cn3zn4gi8o 24 дня назад

    Наконец-то)) спасибо вам, очень хорошо объяснили, я до этого читала. И никак не могла понять. У меня скопилось много разных версий. Так и жила несколько лет 😀. Документацию к гиту писал какой - то душнила, чтоб было максимально непонятно и запутанно.

  • @filinyellow7134
    @filinyellow7134 3 года назад +6

    Спасибо за видео! Отличное объяснение отличий, плюсов и минусов обоих методов.

    • @frontendscience
      @frontendscience  3 года назад

      И Вам спасибо, что смотрите! Рады стараться.

  • @avorion-ru
    @avorion-ru 2 года назад +2

    Классно объясняете, понятно. Спасибо большое!

  • @andreifokin311
    @andreifokin311 2 года назад +4

    Супер! Очень доходчиво! Отдельное спасибо за вставки картинок и гифок! Поржал))))

    • @frontendscience
      @frontendscience  2 года назад +1

      Прикольно! Рад, что понравилось! Я старался))

  • @atlantatesla9348
    @atlantatesla9348 2 года назад +3

    Спасибо большое за объяснение.
    Первый раз на вашем канале и сразу же подписалась.
    Доходчивое объяснение со схемами. И отдельный респект за вставки различных мемов, гифок и "красивометр" 😁. Это помогает взбодриться и смотреть видео с бОльшей концентрацией.

    • @Polinko007
      @Polinko007 7 месяцев назад

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

  • @zagboris
    @zagboris 2 года назад

    Лучшее объяснение. Спасибо огромное!

  • @user-yc4hm6oo9k
    @user-yc4hm6oo9k 3 года назад +1

    Супер!!! Самое лучшее объяснение, все просто и ясно, спасибо)))

  • @margino
    @margino Год назад +2

    Спасибо, за доступное объяснение!

  • @user-gl9qi5dv1o
    @user-gl9qi5dv1o Год назад

    Благодаря этому видео, вопрос по мерджу/ребейзу для себя закрыл. Очень доходчиво объяснил. Дякую!;)

  • @peacedets
    @peacedets Месяц назад

    Дай тебе Бог здоровья, хлопчик, наконец-то дошло до старика.

  • @Rom4eS
    @Rom4eS 2 года назад +1

    Объяснение merge и rebase на котиках это же гениально!))

  • @yuriuss
    @yuriuss Год назад +1

    Отлично объяснил, спасибо Сергii 👍

  • @desire88
    @desire88 2 года назад +17

    Работаем по разному, но в основном через merge из-за надежности. Когда бывает очень много малозначимых коммитов , например исправление опечаток в словах, тогда обычно мы делаем squash или интерактивный rebase, но видимо это следующее видео в цикле Git :)
    PS: спасибо за труды, новичков в команде часто приходится подтягивать поэтому советую что посмотреть и с какого канала, у вас достойные и наглядные объяснения - буду советовать.

  • @bohdan2812
    @bohdan2812 Год назад

    Благодарю тебя добрый человек!

  • @ingvarr6235
    @ingvarr6235 3 года назад +5

    Спасибо, отличное наглядное объяснение!

    • @frontendscience
      @frontendscience  3 года назад +1

      Рад, что было полезно! Спасибо за поддержку

  • @Vlad-em1bx
    @Vlad-em1bx 2 года назад +2

    На собесах для мидлов задают такие вопросы.
    Огромное спасибо автору за простое и полное объяснение!

  • @arturmusin1958
    @arturmusin1958 3 года назад +1

    Спасибо большое! Мега-понятно !

    • @frontendscience
      @frontendscience  3 года назад +1

      Рад, что оказалось полезно! Спасибо, что смотрите)

  • @antontigunov5058
    @antontigunov5058 3 года назад

    Крутое видео и канал ооочень интересный, я очень надеюсь, что не забросишь, а будешь только дальше развиваться, спасибо!

    • @frontendscience
      @frontendscience  3 года назад

      Благодарю за поддержку! Рад, что оказалось полезно)

  • @user-sn1tj3wv3s
    @user-sn1tj3wv3s Год назад

    Отличное разъяснение, спасибо!

  • @mzx6531
    @mzx6531 2 года назад

    Отличный видос, без воды по полочкам, спасибо

  • @user-ls4gh7cq3s
    @user-ls4gh7cq3s 3 года назад +1

    Спасибо большое за крутой контент. Очень информативно и понятно

    • @frontendscience
      @frontendscience  3 года назад

      И Вам спасибо! ) Рад, что пригодилось

  • @user-zg8ij3kt1h
    @user-zg8ij3kt1h 7 месяцев назад

    Спасибо, очень доходчиво и на котиках. Успехов!

  • @MrKoTera
    @MrKoTera 3 года назад +14

    Чел, отличное видео! Благодаря ему я всё же понял, когда и что использовать. Большинство говорит, что эти команды делают, но когда их использовать чётко - мало кто)

    • @frontendscience
      @frontendscience  3 года назад +1

      Рад, что пригодилось, бро)

  • @user-lq1vu4xi2p
    @user-lq1vu4xi2p 2 года назад +1

    Самое доходчивое объяснение ! спасибо!

    • @frontendscience
      @frontendscience  2 года назад

      Рад, что оказалось полезно)

  • @user-ww1qh5fu7j
    @user-ww1qh5fu7j 2 года назад

    Вот теперь всё понятно, спасибо!

  • @WalkHB2
    @WalkHB2 2 года назад

    Знал, что rebase этот мерж только по-другому, но как именно по другому не понимал (описания до этого читал перемудреные). После этого видео все стало понятно, спасибо!

  • @user-xb4no8jb2q
    @user-xb4no8jb2q 3 года назад +2

    Cпасибо, мне как начинающему разработчику было очень полезно!

    • @frontendscience
      @frontendscience  3 года назад

      Очень рад. Благодарю, что написали.

  • @Shakl-e
    @Shakl-e 3 года назад

    Лучшее объяснение! 👍

  • @dmytrokireiev9241
    @dmytrokireiev9241 3 года назад +5

    Нраицца. Спасибо. Использую merge постоянно. Теперь готов попробовать rebase

  • @suspiciousgoose7904
    @suspiciousgoose7904 Месяц назад

    Полезно) спасибо за видео вам

  • @dreamer_vi905
    @dreamer_vi905 3 месяца назад

    Лайк. Чистый вопрос на собеседовании. Плюс хорошее объяснение для понимания. Спасибо большое. Подписка.

  • @Dmitriy-bq2xh
    @Dmitriy-bq2xh 3 года назад +4

    Спасибо, дошло!

  • @thghtfl
    @thghtfl 4 месяца назад

    спасибо огромное! все понятно и четко

  • @ihormanzii
    @ihormanzii 3 года назад

    Класс, благодарю, супер понятно!

    • @frontendscience
      @frontendscience  3 года назад

      Рад, что оказалось полезно!)

  • @K-BotN_
    @K-BotN_ 2 года назад +1

    Очень хорошее видео, спасибо!

  • @a.osethkin55
    @a.osethkin55 2 года назад

    О круто. Не использовал даже. Спасибо

  • @shelovessugar9950
    @shelovessugar9950 Год назад +1

    Спасибо, очень понятно)

  • @dimasamsonau3646
    @dimasamsonau3646 2 года назад

    спасибо мен, очень подробно объяснил!)

  • @eaglesm1993
    @eaglesm1993 2 года назад

    Сопроводительные вставки повеселили, и я даже походу понял как это работает)

  • @bama2619
    @bama2619 2 года назад +2

    Спасибо.
    4:23 rebase (состав + состав) Одному разрабу на ветке самый раз. Многим разрабам нужно осторожно так как меняется история и hash коммитов.

  • @yaroslavzef7267
    @yaroslavzef7267 4 месяца назад

    Здарово Серег. Спасибб

  • @user-bv2ih2fb5v
    @user-bv2ih2fb5v 3 года назад +1

    Наконец-то я понял что за rebase. Спасибо!

  • @dmitry6687
    @dmitry6687 3 года назад

    Нормальное объяснение ребейса, Наконец-то!

    • @frontendscience
      @frontendscience  3 года назад

      Рад, что оказалось полезно!

  • @slaviksemen4919
    @slaviksemen4919 7 месяцев назад

    братан не знаю как но ты самый понятнее всего обьяснил из всего простора инета

  • @vital708
    @vital708 2 года назад

    Доходчиво. Спасибо.

  • @user-rf8je4zv1j
    @user-rf8je4zv1j Год назад

    Крутой материал!

  • @UralSmart
    @UralSmart Год назад

    Все понятно, спасибо

  • @artkoorosawa6432
    @artkoorosawa6432 2 года назад

    Да. Спасибо Сергей. Всегда хватало merge, но не давно начал искать работу и не знал даже что существует такая команда как rebase. Я просто и сказал так что не знаю - в результате не прошёл, но поинтересовался. Греет душу что не упал всё таки лицом в грязь, так как это фактически аналоги.

  • @SergeiKjtydghk
    @SergeiKjtydghk Год назад

    крутое объяснение, спасибо!

  • @user-gi9xk7jt1f
    @user-gi9xk7jt1f 2 года назад

    Спасибо! Все понятно!

  • @leokorsunsky2395
    @leokorsunsky2395 2 года назад

    Спасибо за контент!

  • @Leyla-kk5vo
    @Leyla-kk5vo 11 месяцев назад

    Спасибо, очень понятно, топ!

  • @1mujer98amante5
    @1mujer98amante5 2 года назад

    👍👍👍 вообще огонь!

  • @zubescu
    @zubescu 2 года назад

    спасибо за понятное объяснение. подписался на канал

  • @FootballRS7
    @FootballRS7 Год назад

    спасибо за объяснение

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil Год назад

    Спасибо, полезно

  • @razmus89dragovich20
    @razmus89dragovich20 2 года назад

    о, спасибо теперь понятно что и когда

  • @docshark11
    @docshark11 Год назад

    Супер объяснение! а можно такое же объяснение для - git squash?

  • @Andrew-strong
    @Andrew-strong 3 года назад +9

    О! Годнота подъехала! Спасибо тебе!
    На позапрошлом месте работы, работая на одном проекте, у тимлида жёстко подгорало, когда он видел мерж-коммиты в моих мерж-реквестах., приходилось ребейсить. Но нас в команде было двое.
    Потом перевели на другой проект, где в одном репозитории были и фронт и бэк. Я по привычке сделал ребейс, запушил, а потом вместе с бэкендером, работающем с данной веткой пытались разобраться в получившейся каше.
    А вообще, как думаешь, хорошая практика - фронт и бэк в одном репозитории?

    • @astrotrain
      @astrotrain 3 года назад +4

      У меня проект, и фронт и бэк в одном репозитории, но файлы и папки разные, друг другу вообще не мешаем.
      Проект на битриксе, но битрикс используем просто как админку, фронт общается с бэком через апи.

    • @frontendscience
      @frontendscience  3 года назад

      ОООО..... это очень холиварный вопрос. Тут очень много зависит от самого проекта и еще от частоты обновления, важности синхронизации бакенда и фронтенда и др. Я лично за более микросервисную архитектуру и разделение ответсвенности. Но есть много проектов где такой подход не пройдет. Так что - как говорят it depends. PS: на последок рекомендую для общего развития поискать в интернете информацию про monorepo подход. Самый крупный монорепо в Мире например у Гугла - весь код всего лежит в одном репозитории.

    • @user-ll2xw7tn6v
      @user-ll2xw7tn6v 2 года назад

      1 проект - 1 репозиторий. Фронт это один проект. апи сервера это другие проектЫ. Т.е. репозиториев должно быть ни менее 2. Два апи+фронт = 3 репозитория.

    • @user-ll2xw7tn6v
      @user-ll2xw7tn6v 2 года назад

      @@olezhonnv3215 до поры до времени, пока 10 человек с разными целями не попытаются это всё смержить и куча конфликтов либо кривой автомрж всё не похерит. Уже проходили.

  • @alexeypashchenko
    @alexeypashchenko 3 года назад +3

    💯✨💯✨Идеально объяснил

  • @xoxo2880808
    @xoxo2880808 2 года назад

    Спасибо!

  • @sanya8158
    @sanya8158 2 года назад

    Спасибо огромное)

  • @user-ll2xw7tn6v
    @user-ll2xw7tn6v 2 года назад +7

    Всё-таки можно посмотреть в какие моменты "подобновляли" свою ветку. Нужно ребейз делать с флагом --committer-date-is-author-date Но это и не важно (дата обновления). Важна лишь последовательность и дата, когда данный коммит попал в общую ветку, т.е. повлиял на других.

    • @user-jl7vr6xy7g
      @user-jl7vr6xy7g 11 месяцев назад

      Самое ёмкое и понятное объяснение😍 Спасибо!

  • @maksym.kondratenko
    @maksym.kondratenko 3 года назад +2

    Гениально!

  • @MrEugen25
    @MrEugen25 3 года назад

    Наконец то я стал понимать о чем речь!

    • @frontendscience
      @frontendscience  3 года назад

      Рад что оказалось полезным!

  • @amir18n
    @amir18n 2 года назад +1

    спасибо!

  • @andygr1n1
    @andygr1n1 2 года назад +3

    пользуюсь только merge, как раз потому что не имел ни одного проекта, который разрабатывал бы один
    отличный материал, спасибо!

    • @user-zu3rw3cr1u
      @user-zu3rw3cr1u 2 года назад +2

      рассказ про ветки же

    • @andreypr503
      @andreypr503 2 года назад +1

      одна ветка на проект?

  • @ssurrokk
    @ssurrokk 2 года назад

    респект, красавчик

  • @Developer_python_
    @Developer_python_ Год назад

    Great!

  • @user-dw4pi5gy7t
    @user-dw4pi5gy7t 6 месяцев назад

    Достойно лайка

  • @eakzit3181
    @eakzit3181 3 года назад

    Спс, за обьяснения. Я всегда боялся ребейза. Я толком даже и мердж не юзал - всегда писал git pull origin branch...Спс за обьяснение

    • @frontendscience
      @frontendscience  3 года назад

      Класс! Рад, что оказалось полезным!

  • @vladvoloshenko5701
    @vladvoloshenko5701 2 года назад

    красивометр заставил меня ухмельнуться😄

  • @kenanhaciyev3759
    @kenanhaciyev3759 Год назад

    шикарно

  • @Nightship
    @Nightship 9 месяцев назад

    мужик, спасибо!

  • @TheBaragoz
    @TheBaragoz Год назад

    можно ли добавлять фичу в мастер через рибейз? или это только для обновления?

  • @konstantinz5058
    @konstantinz5058 2 года назад

    Круто! А можно ребейз откатить? Если при ребейзе неправильно решены конфликты

  • @dmitriy9152
    @dmitriy9152 2 года назад

    Использовали и мерж и ребейз. Ребейз более опасная операция по сравнению с мержем, решили, что кто как хочет, тот так и делает в своей ветке. В сумме, не сильно мешает потом найти коммит с изменениями.

  • @nikonlaw
    @nikonlaw Месяц назад

    Привет. Спасибо за видео. Я только начал изучать и у меня может странный вопрос. Если я находясь в ветке "фича" сделаю git merge main, то разве моя ветка "фича" не станет единственной и главной? Я думаю это не по православному и нужно мержить свою ветку в "мейн". Я ошибаюсь?

  • @VitMS1
    @VitMS1 2 года назад

    У нас на проекте аналогичный подход )

  • @TheBaragoz
    @TheBaragoz Год назад

    А если я несколько раз буду обновлять свою фича ветку разными (обновленными) мастерами, то эти мастера в конфликт не войдут между собой? и не будут ли каждый раз заново добавляться к моей фича вет
    ке? не окажется ли перед моей фичой после нескольких обнновлений 5-6 мастеров разных версий?

  • @zl0n1k
    @zl0n1k 3 года назад

    17 лет в разработке. Норм ман для начинающих!

  • @AHToHK
    @AHToHK 2 года назад

    Спасибо за объснения.
    А вообще есть возможность, используя merge (а на rebase), сделать pull request (например, на github), содержащий только свои изменения в истории?

    • @frontendscience
      @frontendscience  2 года назад

      Для создания пуллреквеста вообще не нужен ни мерж ни рибейз. Просто создается ветка от свежего мастера и туда делаются коммиты. А вот чтобы эту ветку слить с мастером когда будет заапрувлен pr, вот тогда обычно используется мерж.

  • @veraburak8049
    @veraburak8049 11 месяцев назад

    лайк, подписался

  • @aliaksandrkisel2359
    @aliaksandrkisel2359 2 года назад

    спасибо, классно объяснили
    #git #merge #rebase

  • @mak_whisk
    @mak_whisk 3 года назад

    спасибо

  • @Bob-fh6jb
    @Bob-fh6jb 2 года назад

    Крутяк!!!!

  • @tangor268
    @tangor268 Год назад

    Использую всегда merge, в проектах несколько разрабов, поэтому безопасность превыше эстетики)

  • @ivanserdiukov5680
    @ivanserdiukov5680 Год назад

    top, super, like

  • @skynowa2626
    @skynowa2626 2 года назад

    Агонь! Где ты был раньше?

    • @frontendscience
      @frontendscience  2 года назад +1

      Рад, что понравилось! Благодарю за поддержку)

  • @kirill_prog
    @kirill_prog 3 месяца назад

    А чтобы подобновить свою ветку, нужно ведь master подтянуть сначала git pull?