git branch -d는 경고를 제공합니다.


93

로컬 브랜치를 삭제 한 후 경고 메시지를 더 잘 이해하고 싶습니다.

경고 : 'old_branch'에 병합 'refs/remotes/origin/old_branch'되었지만 아직에 병합되지 않은 분기 를 삭제 합니다 HEAD.


29
--squash your old_branch를 병합하면 로컬에서 삭제할 때 항상이 경고가 표시됩니다. 색인입니다 부수 때 리셋 따라서 머리 old_branch 일치하지 않습니다
앙투안 Wils

다른 답변은 정확하지만 Antoine의 의견은 적어도 내 경우에는 그 이유였습니다.
Squrppi

답변:


67

이는의 브랜치에 변경 사항이 푸시 origin되었지만에 병합되지 않았 master으므로 로컬로만 삭제 한다는 경고 일뿐 입니다.

더 이상 해당 분기의 로컬 사본이 없다는 경고가 표시되지만 origin

원격 브랜치도 삭제하려면 git push --delete origin old_branch


9
그래, master이것에 관여하지 않는다. 오히려 현재 분기를 의미합니다. ;)
Fernando Espinosa

1
git branch -d branch_name로컬에서만 브랜치를 삭제해야하는 경우에도이 경고가 표시 됩니다. 이 경우 경고가 필요한 이유는 무엇입니까?
Akshay Damle

2
그러나 origin / old_branch는 origin / master에 병합됩니다. 나중에 마스터 브랜치에서 git pull origin을 수행했습니다. 여전히 같은 오류입니다. 이 버그가 GH에 있지 않습니까?
vikramvi

37

현재 한 가정 master체크 아웃, 그것은 변경에 만든 의미 old_branch에서 존재하지 않습니다 master. 그러나 존재 old_branch합니다 origin.


4
네. 이것은 정답입니다! "그러나 아직 병합되지 않았습니다 HEAD", HEAD여기는 로컬 마스터 브랜치의 HEAD를 참조합니다.
Devy

3
그러나 origin / old_branch는 origin / master에 병합됩니다. 나중에 마스터 브랜치에서 git pull origin을 수행했습니다. 여전히 같은 오류입니다. 이 버그가 GH에 있지 않습니까?
vikramvi

1
@vikramvi master로컬에서 체크 아웃 했다고 가정하면 커밋의 SHA가 변경된 경우에도 여전히 발생할 수 있습니다. 즉, 당신은 리베이스 origin/old_branchorigin/master. 빨리 감기 였더라도에서 새 커밋마다 새 SHA를 생성 origin/old_branch하여 git이 old_branch로컬 master브랜치에 변경 사항을 가져온 후 병합되지 않은 것으로 로컬에서 원래 SHA를 볼 수 있습니다 . 이 답변 과 이것이 발생하는 이유에 대한 답변 을 볼 수 있습니다 .

8

이는 해당 지역의 지점을 의미 old_branch원격 지사와 최신 상태로 old_branch원격에 origin있지만 분기에 합병되지 masterREPO의 주요 지점으로 간주됩니다.

git의 예방 조치 일뿐입니다. 힌트를 제공합니다. topic-branch에서 일을했고 메인 브랜치에 병합하는 것을 잊었습니까?


최신 정보

Git은 변경 사항을 잃지 않도록 경고합니다. 예를 들어 old_branch마스터 git에없는 경우 마스터에 병합되지 않은 분기를 삭제할 수도 없습니다 (허용하지만 옵션 인 키 -D사용 force-delete).


7
반드시 그런 것은 master아니지만 현재 HEAD.
Frozen Flame

따라서 -D는 삭제되는 분기 (실제로는 커밋)를 원격 분기와 공유하지 않은 경우입니다. 경고는 원격과 분기 (커밋)를 공유했지만 HEAD에 병합되지 않았 음을 알리는 것입니다. HEAD는 HEAD이고 remote / refs / HEAD는 동일하지 않습니다. 그러나 원격 HEAD와 로컬 HEAD의 차이점에 대해 잘못된 경우 저를 수정하십시오.
에릭

7

다른 답변에 추가하려면 변경 사항이 마스터에 병합 될 수 있음을 의미 할 수 있으며 마스터의 로컬 사본이 아직 반영하지 않습니다. 어느 쪽이든 이것은 마스터의 로컬 사본에 원본에 푸시 한 변경 사항이 없음을 알려줍니다. 병합 됨 / 병합되지 않음 ... 아마도, 아님

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.