Примітка. Формулювання змінено у відповідь на зобов'язання. Дякую @slekse
Це не помилка, це попередження. Це означає, що гілка, яку ви збираєтеся видалити, містить комітети, які недоступні ні з одного: її гілки вгору за течією чи HEAD (наразі перевірена версія). Іншими словами, коли ви можете втратити зобов’язання¹.
На практиці це означає, що ви, ймовірно, змінювали, повторно базували чи фільтрували комісії, і вони не здаються однаковими.
Тому ви можете уникнути попередження , перевіривши гілку, яка містить комісії, про які ви не маєте посилання , видаливши цю іншу гілку.
Ви хочете переконатися, що ви насправді не пропускаєте жодних життєво важливих зобов'язань:
git log --graph --left-right --cherry-pick --oneline master...experiment
Це дасть вам список усіх нерозподілених між гілками. Якщо вам цікаво, може бути різниця без, --cherry-pick
і ця різниця цілком може стати причиною попередження, яке ви отримуєте:
--cherry-pick
Пропустіть будь-який комітет, який вносить ту саму зміну, що й іншу комісію з "іншої сторони", коли набір комісій обмежений симетричною різницею. Наприклад, якщо у вас є дві гілки, A і B, звичайний спосіб переліку всіх комісій, що знаходяться лише на одній їх стороні, є --left-right, як приклад вище в описі цього параметра. Однак він показує комітети, які були вибрані з вишні з іншої гілки (наприклад, "3-й на b" може бути вишневий з гілки A). При такому варіанті такі пари комітетів виключаються з виводу.
¹ вони є лише сміттям, яке збирають через деякий час, за замовчуванням. Також git-branch
команда не перевіряє дерево редагування всіх гілок . Попередження існує, щоб уникнути явних помилок.
² (Моя перевага тут - просто змусити видалення замість цього, але ви можете мати додаткове застереження).