Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавляет ответ на вопрос о разнице между git rebase и git merge #5471

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

Otkazano
Copy link

Описание

Добавил ответ на вопрос о разнице между git rebase и git merge в раздел собеседований

Closes #5341

Чек-лист

  • Текст оформлен согласно руководству по стилю
  • Ссылки на внутренние материалы начинаются со слеша и заканчиваются слэшем либо якорем на заголовок (/css/color/, /tools/json/, /tools/gulp/#kak-ponyat)
  • Ссылки на картинки, видео и демки относительные (images/example.png, demos/example/, ../demos/example/)

@TatianaFokina TatianaFokina added веб-платформа Контент по Веб-платформе статья Расширенный материал собеседование Контент для На собеседовании labels Jul 30, 2024

This comment was marked as duplicate.

@TatianaFokina TatianaFokina changed the title answer to #5341 issue Добавляет ответ на вопрос о разнице между git rebase и git merge Jul 30, 2024
@TatianaFokina TatianaFokina added рецепт Контент для Рецептов and removed веб-платформа Контент по Веб-платформе статья Расширенный материал labels Jul 30, 2024
@vitya-ne
Copy link
Contributor

vitya-ne commented Aug 1, 2024

Привет, спасибо за статью!
Небольшое предложение: как насчёт добавить немного об "опасности" rebase ?
Или хотя бы сослаться на git-scm.com.

@Otkazano
Copy link
Author

Otkazano commented Aug 8, 2024

Добавил ссылку на доку. Мне кажется, раскрывать эту тему было бы логичнее в статье, а не в ответах на вопросы.

@Otkazano Otkazano requested a review from vitya-ne August 31, 2024 21:07
Copy link
Member

@HellSquirrel HellSquirrel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо! Очень классное дополнение.
Давай немножко уточним перед тем как это помержить

@@ -0,0 +1,23 @@
Обе команды нужны для одной цели, но имеют существенные отличия в том, как работают.

`git merge` объединяет изменения из одной ветки в другую, создавая новый коммит слияния `merge commit`. История проекта остаётся неизменной, записываются все коммиты. Можно проследить, когда и как ветки были объединены, но читать такую последовательность сложнее.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай уточним что это происходит не всегда см fast-forward merge

git merge feature
```

`git rebase` перемещает или переписывает базу текущей ветки на указанную базу другой ветки. Это переписывает историю коммитов (в том числе изменяя хэши), делая её линейной, не создаёт новый коммит слияния `merge commit`. Это упрощает чтение последовательности внедрения фич, но усложняет отслеживание детальной хронологии. Главное преимущество команды — возможность перенести только часть коммитов. Будьте осторожны, `git rebase` может [иметь негативный эффект](https://git-scm.com/book/ru/v2/%D0%92%D0%B5%D1%82%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-Git-%D0%9F%D0%B5%D1%80%D0%B5%D0%B1%D0%B0%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#:~:text=%D0%9E%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D1%8F).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кажется для ребейза не обязательно находиться в нужной ветке (см --onto) флаг. И вот тут https://doka.guide/recipes/git-rebase-onto/

@Otkazano
Copy link
Author

Дополнил ответ информацией о "fast-forward merge" и --onto флаге.

Copy link

Превью контента из 7af95e0 опубликовано.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
рецепт Контент для Рецептов собеседование Контент для На собеседовании
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Вопрос для собеседования: В чём разница между git merge и git rebase?
4 participants