Вызывает ли git локальное обновление / слияние при нажатии на master origin? - PullRequest
0 голосов
/ 28 декабря 2011

Допустим, над одним проектом работают 100 разработчиков.

Когда каждый разработчик передает свою ревизию в центральное хранилище (мастер-источник), они вынуждены извлекать / объединять локально, чтобы получить все обновления перед загрузкой?

Или если все они работают с разными файлами и объединение не требуется, они не будут вынуждены это делать?

Ответы [ 3 ]

2 голосов
/ 28 декабря 2011

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

git pull --rebase && git push
1 голос
/ 29 декабря 2011

Сценарий, который вы описали, недопустим: удаленные репозитории git не допускают переходы к ветвям, когда они не ускоренные пересылки .

Скажем, вы хотите нажать на ветку b. Пульт находится в точке r. Ваш разработчик хочет протолкнуть коммиты из своей ветви b на удаленный b, начиная с точки d до его заголовка: этот не будет работать, если r не строго равен d.

Это сделано специально: если бы вам было позволено это сделать, вы бы сломали ветки всех остальных разработчиков, которые работают над проектом, не говоря уже о очень высокой вероятности потери коммитов. Конечно, у разработчиков есть свои локальные reflogs, но все же.

0 голосов
/ 28 декабря 2011

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

Более длинный ответ: Git целенаправленно не пытается сообразить, нужно ли объединять изменения друг с другом: что касается Git, история изменилась, поэтому дерево будет нуждаться в объединении клиента. боковая сторона. К счастью, в большинстве случаев это так же просто, как git pull или git pull --rebase, с последующей быстрой проверкой изменений и все ли работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...