Я понимаю это, когда я использую git pull --rebase
, мерзавец перепишет историю и переместит мои локальные фиксации для появления после всех фиксаций в ответвлении, от которого я просто вытянул.
То, что я не понимаю, - то, как это когда-либо было бы плохой вещью. Люди говорят о входе для беспокойства с git pull --rebase
где можно закончить с ответвлением, от которого не могут вытянуть другие люди. Но я не добираюсь, как это возможно начиная со всего, что Вы делаете, воспроизводит Ваше локальное, еще общедоступное, фиксации сверх ответвления, от которого Вы вытянули. Так, какова проблема там?
Это проблема, только если вы опубликовали (отправили) только некоторые из своих коммитов, потому что их будет сложнее объединить с другими репозиториями, в которых эти коммиты уже есть. Поскольку их SHA1 изменился, Git попытается воспроизвести их снова в этих репозиториях.
Если вы этого не сделали (снова нажали любой из этих коммитов), любое перебазирование должно быть безопасным.
Итак, проблема вот в чем: вы уверены , что все локальные коммиты, которые вы перебазируете, на самом деле ... локальные?
И уверены ли вы в этом ' git pull --rebase
'после' git pull --rebase
'?
Если вы работаете над «частной веткой» (веткой, которую вы никогда не нажимали, а только объединяете или переустановите публичную ветку, которую вы будете нажимать), тогда вы можете безопасно переустановить эту частную ветку в любое время, когда захотите.
В конце концов, все зависит от рабочего процесса слияния , который вы выбрали для создания .
Зарегистрируйтесь в ветке. Толкать. Слияние с другой веткой (скажем, вы поддерживаете две базовые версии, ветку патча и ветку новой разработки). Осознайте, что другие коммиты были отправлены в серверную ветку, которую вы отслеживаете. pull --rebase. Внезапно вы переделали каждую фиксацию против нового хэша - и уничтожили фиксацию слияния.
Если никто не тянул с вас, и вы не выкладывали свои коммиты (до rebase) куда-либо еще, то теоретически с вами все в порядке. Тем не менее, Git хорошо обрабатывает слияния, и вы можете обнаружить, что работы в целом будет меньше, если вы будете тянуть и сливать вместо того, чтобы тянуть и rebase.
Помните, что Git - это распределенная система управления исходным кодом. Людям не нужно извлекать данные из центрального репозитория, в который вы нажимаете, - в определенных рабочих процессах они могут получать свои изменения непосредственно от вас.В таких случаях переписывание истории, безусловно, может вызвать проблемы, о которых вы говорите