Когда 'мерзавец вытянет - переоснова' приводит меня для беспокойства?

Я понимаю это, когда я использую git pull --rebase, мерзавец перепишет историю и переместит мои локальные фиксации для появления после всех фиксаций в ответвлении, от которого я просто вытянул.

То, что я не понимаю, - то, как это когда-либо было бы плохой вещью. Люди говорят о входе для беспокойства с git pull --rebase где можно закончить с ответвлением, от которого не могут вытянуть другие люди. Но я не добираюсь, как это возможно начиная со всего, что Вы делаете, воспроизводит Ваше локальное, еще общедоступное, фиксации сверх ответвления, от которого Вы вытянули. Так, какова проблема там?

40
задан Gabe Hollombe 7 April 2010 в 05:46
поделиться

4 ответа

Это проблема, только если вы опубликовали (отправили) только некоторые из своих коммитов, потому что их будет сложнее объединить с другими репозиториями, в которых эти коммиты уже есть. Поскольку их SHA1 изменился, Git попытается воспроизвести их снова в этих репозиториях.

Если вы этого не сделали (снова нажали любой из этих коммитов), любое перебазирование должно быть безопасным.

Итак, проблема вот в чем: вы уверены , что все локальные коммиты, которые вы перебазируете, на самом деле ... локальные?
И уверены ли вы в этом ' git pull --rebase 'после' git pull --rebase '?

Если вы работаете над «частной веткой» (веткой, которую вы никогда не нажимали, а только объединяете или переустановите публичную ветку, которую вы будете нажимать), тогда вы можете безопасно переустановить эту частную ветку в любое время, когда захотите.

В конце концов, все зависит от рабочего процесса слияния , который вы выбрали для создания .

25
ответ дан 27 November 2019 в 01:56
поделиться

Зарегистрируйтесь в ветке. Толкать. Слияние с другой веткой (скажем, вы поддерживаете две базовые версии, ветку патча и ветку новой разработки). Осознайте, что другие коммиты были отправлены в серверную ветку, которую вы отслеживаете. pull --rebase. Внезапно вы переделали каждую фиксацию против нового хэша - и уничтожили фиксацию слияния.

5
ответ дан 27 November 2019 в 01:56
поделиться

Если никто не тянул с вас, и вы не выкладывали свои коммиты (до rebase) куда-либо еще, то теоретически с вами все в порядке. Тем не менее, Git хорошо обрабатывает слияния, и вы можете обнаружить, что работы в целом будет меньше, если вы будете тянуть и сливать вместо того, чтобы тянуть и rebase.

3
ответ дан 27 November 2019 в 01:56
поделиться

Помните, что Git - это распределенная система управления исходным кодом. Людям не нужно извлекать данные из центрального репозитория, в который вы нажимаете, - в определенных рабочих процессах они могут получать свои изменения непосредственно от вас.В таких случаях переписывание истории, безусловно, может вызвать проблемы, о которых вы говорите

2
ответ дан 27 November 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: