Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как работает git merge (https://javascript.ru/forum/offtopic/49967-kak-rabotaet-git-merge.html)

ixth 05.09.2014 13:40

Как работает git merge
 
Чота в контексте гита возник глупый вопрос. Как работает rebase я примерно понимаю: коммиты из исходной ветки черрипикаются по одному в целевую, фактически на целевой ветке применяется история правок исходной. А что происходит при мердже? Да, создается коммит с двумя родителями. Значит ли это, что если я удалю коммиты одной из смердженных веток, то правки из нее потеряются и история изменений сломается? Или при мердже создается коммит, собирающий в себе все изменения, произведенные в обеих ветках? Как это работает под капотом?

kobezzza 05.09.2014 14:13

Каждый коммит в гите создаёт новый бинарный файл (слепок) и мерж не исключение.

Цитата:

Значит ли это, что если я удалю коммиты одной из смердженных веток, то правки из нее потеряются и история изменений сломается?
Нет, ты сделал мерж -> создался новый слепок, который уже ни от кого не зависит.

Тут хорошо описана схема
http://git-scm.com/book/ru/%D0%92%D0...0%B2%D1%8B-Git

ixth 05.09.2014 14:51

Я думал, в коммитах только диффы хранятся.

kobezzza 05.09.2014 14:53

Цитата:

Сообщение от ixth (Сообщение 329114)
Я думал, в коммитах только диффы хранятся.

Ну, каждая система делает по своему, но Гит делает слепки, поэтому хранить всякие жирные бинарники в репозитарии, вроде psd или exe не рекомендуется.


Часовой пояс GMT +3, время: 21:01.