Примечание. Формулировка изменена в ответ на комментарий. Спасибо @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 не проверяет дерево ревизий всех ветвей. Предупреждение сделано, чтобы избежать очевидных ошибок.
² (Я предпочитаю вместо этого просто принудительно удалить удаление, но вы, возможно, захотите получить дополнительную уверенность).
person
sehe
schedule
25.09.2011
git commit --amend- person Arcolye   schedule 12.07.2014squash: stackoverflow.com/q/41946475/109941 - person Jim G.   schedule 29.01.2018