Я подозреваю, что это происходит после того, как вы перебазируете разработку из master после выпуска исправления.
Рассмотрим следующий сценарий:
master A->B->C
\
develop D
\
feature A E
Затем вы получаете исправление в master
, F и перебазируете develop
с него. ReBase создает «новый» коммит (D ') с другим ha sh, поэтому с точки зрения git D и D' - это два отдельных и не связанных коммитов. D все еще существует, и C является его родителем, но он больше не включен на develop
- только на feature A
:
master A->B->C->F
\ \
develop \ D'
\
feature A D->E
Так что если вы затем попытаетесь отменить feature A
off develop
, если вы не сделаете интерактивную перебазировку, git не сможет распознать, что D и D 'являются одним и тем же коммитом, и вы получите следующее:
master A->B->C->F
\
develop D'
\
feature A D->E
Чтобы обойти это, при перебазировании feature A
из develop
, сделайте это в интерактивном режиме и скажите git, чтобы вы отбросили D
, поскольку вы знаете, что оно идентично D '.