Информация об изменениях

Сообщение Re[37]: Git wtf?.. от 08.02.2016 23:13

Изменено 08.02.2016 23:17 alexzzzz

Здравствуйте, ·, Вы писали:

A>>Маша и Петя спокойно обошлись без именованных веток, без bookmarks, без тэгов, вообще без всего.

·>Собственно в git будет та же история, но не будет путаницы. Т.к. при совпадении имён веток, Маша может вытянуть ветку Пети под другим именем, скажем, назвать её в своём репозитории как petya_dev. По смыслу — ветки dev у Пети и у Маши — независимые истории.

Если Маша и Петя станут путаться, они могут начать использовать и локальные закладки, и синхронизируемые закладки, и именованные ветки. Например, в самом простом варианте, Маша может пометить локальной закладкой свою головную ревизию и легко отличать её от всех остальных головных ревизий, если таковые возникнут; а Петя может ничего не делать, если его всё устраивает. Или они могут каждый сделать себе по закладке и сказать синхронизировать их между репозиториями. Могут под свои задачи именованные ветки завести, если захотят или потребуется зачем-то.

·> Почему их нужно насильно сталкивать лишь по тому, что у них случайно совпали имена — хз.

Я думаю, слово "нужно" неверно. Устраивает базовый функционал анонимных веток? Пользуешься им. Испытываешь неудобства? Можешь использовать закладки и/или именованные ветки.

A>>5 — Петя увидел, что Маша внесла некоторые изменения в Петину фичу

A>>6
A>>7 — Петя влил Машины изменения к себе, закоммитил, запушил и тоже пошёл домой.
·>Кстати, интересно. Как Петя может посмотреть Машины изменения перед вливанием? Я правильно понимаю, что у него уже будет три безымянные головы?

Я слово «влил» использовал не подумав, имея в виду merge Петей изменений, которые Маша сделала в Петину ветку. В результате не очень понимаю, о чём ты спрашиваешь. После того как Петя пришёл вечером, сделал коммит и выполнил pull, он действительно увидит три головные ревизии. Одна Машина, другая Петина, третья тоже Петина, но созданная Машей. Как он поймёт, что Маша что-то сделала в его ветке?

Если использовать только неименованные ветки, то просто увидит, что из одной из ревизий, над которыми он работал, выросла новая голова.

Если он знает, что ему так будет неудобно, он может озаботиться, например, использованием синхронизируемых закладок. Тогда он тоже увидит три головные ревизии, но они будут подписаны:



1. Petya's stuff — последняя ревизия, над которой работал Петя.
2. Petya's stuff@default — нечто, некогда отпочковавшееся от Петиной ветки и вернувшееся обратно со стороны, из удалённого репозитория, с которым Петя синхронизировался, и который у него в настройках назван default. Это локальная закладка, видимая только Пете. Он может её оставить, переименовать или удалить, если хочет.
3. Головная ревизия без закладки — от ветки, которую ведёт Маша. Она знает, что Петя к ней не полезет и не стала делать закладку для своей ветки. (На самом деле мне лень редактировать репозитории).

После слияния двух Петиных веток, коммита и пуша финальный результат выглядит так:

Репозиторий Маши:



Репозиторий Пети:



Центральный репозиторий:

Re[37]: Git wtf?..
Здравствуйте, ·, Вы писали:

A>>Маша и Петя спокойно обошлись без именованных веток, без bookmarks, без тэгов, вообще без всего.

·>Собственно в git будет та же история, но не будет путаницы. Т.к. при совпадении имён веток, Маша может вытянуть ветку Пети под другим именем, скажем, назвать её в своём репозитории как petya_dev. По смыслу — ветки dev у Пети и у Маши — независимые истории.

Если Маша и Петя станут путаться, они могут начать использовать и локальные закладки, и синхронизируемые закладки, и именованные ветки. Например, в самом простом варианте, Маша может пометить локальной закладкой свою головную ревизию и легко отличать её от всех остальных головных ревизий, если таковые возникнут; а Петя может ничего не делать, если его всё устраивает. Или они могут каждый сделать себе по закладке и сказать синхронизировать их между репозиториями. Могут под свои задачи именованные ветки завести, если захотят или потребуется зачем-то.

·> Почему их нужно насильно сталкивать лишь по тому, что у них случайно совпали имена — хз.

Я думаю, слово "нужно" неверно. Устраивает базовый функционал анонимных веток? Пользуешься им. Испытываешь неудобства? Можешь использовать закладки и/или именованные ветки.

A>>5 — Петя увидел, что Маша внесла некоторые изменения в Петину фичу

A>>6
A>>7 — Петя влил Машины изменения к себе, закоммитил, запушил и тоже пошёл домой.
·>Кстати, интересно. Как Петя может посмотреть Машины изменения перед вливанием? Я правильно понимаю, что у него уже будет три безымянные головы?

Я слово «влил» использовал не подумав, имея в виду merge Петей изменений, которые Маша сделала в Петину ветку. В результате не очень понимаю, о чём ты спрашиваешь. После того как Петя пришёл вечером, сделал коммит и выполнил pull, он действительно увидит три головные ревизии. Одна Машина, другая Петина, третья тоже Петина, но созданная Машей. Как он поймёт, что Маша что-то сделала в его ветке?

Если использовать только неименованные ветки, то просто увидит, что из одной из ревизий, над которыми он работал, выросла новая голова.

Если он знает, что ему так будет неудобно, он может озаботиться, например, использованием синхронизируемых закладок. Тогда он тоже увидит три головные ревизии, но они будут подписаны:



1. Petya's stuff — последняя ревизия, над которой работал Петя.
2. Petya's stuff@default — нечто, некогда отпочковавшееся от Петиной ветки и вернувшееся обратно со стороны, из удалённого репозитория, с которым Петя синхронизировался, и который у него в настройках назван default. Это локальная закладка, видимая только Пете. Он может её оставить, переименовать или удалить, если хочет.
3. Головная ревизия без закладки — от ветки, которую ведёт Маша. Она знает, что Петя к ней не полезет и не стала делать закладку для своей ветки. (На самом деле мне лень редактировать репозитории).

После слияния двух Петиных веток, коммита и пуша финальный результат выглядит так:

Репозиторий Маши (она ушла раньше, и у неё не хватает последних изменений):



Репозиторий Пети:



Центральный репозиторий: