GIT: Merge или Rebase? В чем разница?

GIT: Merge или Rebase? В чем разница?

133,907 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

Nightship
Nightship - 13.09.2023 13:49

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

Ответить
Viktor Zherekhin
Viktor Zherekhin - 28.08.2023 20:30

Добрый вечер! По моему, не было сказано, что при команде "git rebase master" (т.е. при вставке текущей feature-ветки в конец master-ветки), коммиты feature-ветки не будут видны в master-ветке (т.е. они как бы останутся изолированными).
И чтобы их объединить надо выполнить команду (из master-ветки): "git merge feature".

Ответить
Andris Briedis
Andris Briedis - 25.08.2023 12:48

Единственная причина, по которой историю слияний трудно понять, — это плохое графическое представление истории и ветвей. Работать с git на консолях, когда есть графические инструменты — это мазохизм. Об этом я даже говорить нестану.
Но в графических представлениях самая большая проблема заключается в том, что изображение не соответствует действительности. Самая большая проблема заключается в том, что никто (из тех, кого я видел) обычно не указывает, какая ветка какая.
Например. 5 веток. Один входит в один. Другой выходит из другого. А как называется какая ветка, в лучшем случае можно посмотреть места подключения. В лучшем. Но если ветки выходят за пределы видимой области, то при наезде на ветку обычное наведение ничего не показывает. Не то, что это за ветка, не то, что такое последний коммит. Мастер начинает двигаться где-то посередине веток только потому, что последний мастер-коммит находится не весь в мастер-ветке, а в какой-то feature ветке. Кошмар.
Если есть hotfix, поместите их в крайнее левое положение и разделите их. Рядом справа находится ветка master. И не важно, где последний раз был сделан коммит. Мастер следующий. Затем идет ветка develop. За master. Снова - Не имеет значения, кто сделал последний коммит. Порядок веток не изменился. А затем вправо разветвляются функции в порядке их появления. А что касается "title", независимо от того, в какую ветку вы заходите, "title" показывает название ветки, текст последнего коммита, дату и «автора». Все. Тогда не будет проблем с пониманием истории. Хаши? Можно показать где-нибудь ниже. Но кто сможет запомнить хэши в долгосрочной перспективе, чтобы проследить историю через них. Кошмар.
GitKraken, PhpStorm и несколько других страдают от этава кошмара.
Если вы знаете app, которая нормально отображать подобное, поделитесь, пожалуйста, в комментариях.
Я повторюсь. Консоль не интересует. Я не мазохист. Я выучил команды. Поигралса 5 минут. Достаточно. Есть графические отображение. Вродье.

Ответить
Дмитрий Лысов
Дмитрий Лысов - 30.07.2023 20:34

Кто нибудь смотрит граф комитов? Если да то зачем?

Ответить
Leyla
Leyla - 08.07.2023 14:48

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

Ответить
Vera Burak
Vera Burak - 05.07.2023 09:52

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

Ответить
Кирилл Привалов
Кирилл Привалов - 22.05.2023 19:23

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

Ответить
Das Kleine Krokodil
Das Kleine Krokodil - 21.05.2023 12:34

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

Ответить
Football RS7
Football RS7 - 16.05.2023 12:58

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

Ответить
Ilya Koren
Ilya Koren - 30.04.2023 18:34

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

Ответить
Log Edge
Log Edge - 03.04.2023 21:37

Так-то все по делу, но звук - какофония какая-то. Хочется через две минуты просто зажать уши. Ну сами послушайте...

Ответить
Paul _St
Paul _St - 03.04.2023 14:04

Great!

Ответить
tangor
tangor - 10.03.2023 10:52

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

Ответить
Tati
Tati - 23.02.2023 02:53

Ничего не изменилось) Этот же вопрос спрашивают на собесах DevOps.

Ответить
hard times
hard times - 01.02.2023 18:49

Оказывается, я любитель метро (((

Ответить
Kenan Haciyev
Kenan Haciyev - 26.01.2023 22:18

шикарно

Ответить
Skeelo
Skeelo - 12.01.2023 10:00

Git pull master тоже делает merge?

Ответить
Anton Kvetnevskiy
Anton Kvetnevskiy - 12.12.2022 10:30

А где взять такой конспект с котиками?

Ответить
dzen1234
dzen1234 - 04.12.2022 23:18

А ещё можно делать rebase при мерже мастера в фичу. Но потом при мерже фичи в мастер делать merge --no-ff. Получится и граф приличный и возможность простого выкашивания фичи из мастера, если с ней что-то не то, - останется.

Ответить
Vladimir Prudnikov
Vladimir Prudnikov - 30.11.2022 22:44

Проблему метро Токио решает `git merge --squash`

Ответить
O N
O N - 26.11.2022 17:18

pidor

Ответить
Sergey B
Sergey B - 09.11.2022 17:00

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

Ответить
Bohdan
Bohdan - 04.11.2022 14:28

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

Ответить
Ivan Serdiukov
Ivan Serdiukov - 25.10.2022 22:16

sub, nice

Ответить
Ivan Serdiukov
Ivan Serdiukov - 25.10.2022 22:15

top, super, like

Ответить
Ram
Ram - 23.10.2022 16:03

Like

Ответить
Vasily H
Vasily H - 14.10.2022 19:28

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

Из этого следует: когда над фичей работают несколько разработчиков - делается отдельная feature-ветка, после чего каждый из них ОБЯЗАН сделать СВОЁ собственное ответвление от этой feature-ветки (Branch) и продолжать работать по стандартным правилам, договариваясь отправляя сообщения: "я сегодня сделаю merge в основную feature ветку - есть возражения?" И после успешного MERGE - второе: "Ребята, я сделал merge в feature ветку - обновитесь".

Ответить
Denys Kozubskyi
Denys Kozubskyi - 09.10.2022 15:28

rebase

Ответить
Yuriy Redko
Yuriy Redko - 13.09.2022 15:01

Отличное видео!
Но слушать невозможно из-за этих видео-вставочек, просто ржу ))) Приходится все время останавливать видео )

Ответить
devAK
devAK - 29.08.2022 12:09

при колективній роботі на одній гілці можна ж користуватися методом git fetch + git rebase потім git push

Ответить
margino
margino - 11.08.2022 14:03

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

Ответить
Yury Sliznikov
Yury Sliznikov - 10.08.2022 14:51

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

Ответить
she loves sugar
she loves sugar - 08.08.2022 07:18

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

Ответить
Тимур Токумов
Тимур Токумов - 05.08.2022 09:03

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

Ответить
Alexey Pavlov
Alexey Pavlov - 20.07.2022 17:18

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

Ответить
Ростислав
Ростислав - 16.07.2022 11:44

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

Ответить
docshark11
docshark11 - 06.07.2022 13:53

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

Ответить
TheBaragoz
TheBaragoz - 03.07.2022 13:08

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

Ответить
TheBaragoz
TheBaragoz - 03.07.2022 13:04

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

Ответить
Diadia
Diadia - 29.06.2022 11:29

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

Ответить
h3ck phy
h3ck phy - 28.06.2022 18:51

фичуретка

Ответить
Ivan Poprotskiy
Ivan Poprotskiy - 26.06.2022 14:51

Я могу только один лайк постовить)) Сорри))

Ответить
Vlad Voloshenko
Vlad Voloshenko - 17.06.2022 18:23

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

Ответить
Konstantin Z
Konstantin Z - 31.05.2022 13:44

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

Ответить
Dmitry Yaskov
Dmitry Yaskov - 19.05.2022 16:28

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

Ответить
Vlad
Vlad - 08.05.2022 15:28

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

Ответить
lool
lool - 05.05.2022 11:15

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

Ответить
ZOOMLE
ZOOMLE - 02.05.2022 00:04

Гениально!

Ответить