Примечание Формулировка изменилась в ответ на комментарии. Спасибо @slekse
Это не ошибка, это предупреждение. Это означает, что ветвь, которую вы собираетесь удалить, содержит коммиты, которые недоступны ни из одного из: его восходящей ветки или HEAD (текущая проверенная ревизия). Другими словами, когда вы можете потерять коммиты.
На практике это означает, что вы, вероятно, изменили, изменили или отфильтровали коммиты, и они не кажутся идентичными
Поэтому вы можете избежать предупреждения , проверив ветку, которая содержит коммиты, о которых вы не ссылаетесь , удалив эту другую ветку.
Вы хотите убедиться, что вы на самом деле не пропускаете какие-либо важные коммиты:
git log --graph --left-right --cherry-pick --oneline master...experiment
Это даст вам список всех не разделенных между ветвями. Если вам любопытно, возможно, есть разница без, --cherry-pick
и эта разница вполне может быть причиной для предупреждения, которое вы получите:
--cherry-pick
Опустите любой коммит, который вносит то же изменение, что и другой коммит на «другой стороне», когда набор коммитов ограничен симметричной разностью. Например, если у вас есть две ветви, A и B, обычным способом перечисления всех коммитов только на одной их стороне является --left-right, как в примере выше в описании этой опции. Однако он показывает коммиты, которые были выбраны вишней из другой ветви (например, «3-е на b» может быть выбрано вишней из ветви A). С помощью этой опции такие пары коммитов исключаются из вывода.
Really они действительно только мусор через некоторое время, по умолчанию. Также git-branch
команда не проверяет дерево ревизий всех ветвей . Предупреждение здесь, чтобы избежать очевидных ошибок.
² (Я предпочитаю вместо этого просто форсировать удаление, но вам может потребоваться дополнительная уверенность).