Розглянемо таку ситуацію:
- У вас є клон сховища git
- У вас є місцеві коміти (комітети, які ще ніде не були витіснені)
- У віддаленому сховищі є нові комісії, які ви ще не узгодили
Тож щось подібне:
Якщо виконати git pull
налаштування за замовчуванням, ви отримаєте щось подібне:
Це тому, що git виконував злиття.
Однак є й альтернатива. Ви можете сказати тягнути, щоб зробити ребауз замість цього:
git pull --rebase
і ви отримаєте це:
На мою думку, версія, що базується, має численні переваги, які в основному зосереджуються на чистоті вашого коду та історії, тому мене трохи вражає той факт, що git робить злиття за замовчуванням. Так, хеші місцевих комітетів будуть змінені, але це здається невеликою ціною, яку потрібно заплатити за простішу історію, яку ви отримаєте взамін.
Я жодним чином не припускаю, що це якимось чином поганий чи неправильний дефолт. У мене просто виникають проблеми з думкою про причини, чому злиття може бути кращим за замовчуванням. Чи маємо ми зрозуміти, чому його обрали? Чи є переваги, які роблять його більш придатним як за замовчуванням?
Основна мотивація цього питання полягає в тому, що моя компанія намагається встановити деякі базові стандарти (сподіваємось, більше схожі на вказівки) щодо того, як ми організовуємо та керуємо нашими сховищами, щоб полегшити розробникам доступ до сховища, з яким раніше вони не працювали. Мені цікаво зробити випадок, коли ми зазвичай повинні проводити повторне базування даних у такому типі ситуації (і, можливо, для того, щоб рекомендувати розробникам встановити їх глобальний конфігурацію для відновлення за замовчуванням), але якщо я проти цього, я, безумовно, запитаю, чому ребаза не є t за замовчуванням, якщо це так здорово. Тож мені цікаво, чи щось мені не вистачає.
Було запропоновано, що це питання є дублікатом Чому так багато веб-сайтів віддають перевагу "git rebase" перед "git merge"? ; однак це питання дещо зворотне . У ньому обговорюються достоїнства rebase перед злиттям, тоді як це питання задає переваги злиття над rebase. Відповіді на це відображають це, зосереджуючи увагу на проблемах із об'єднанням та перевагами бази даних.