일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바 스터디
- backend
- 자바
- IOS
- 일기
- inflearn
- java
- 리뷰
- 도서리뷰
- 영화후기
- Flutter
- 코딩공부
- 스프링 입문
- toy project
- sopt ios
- 플러터
- 영화
- 인프런
- 백엔드
- 영화일기
- 토이프로젝트
- 새벽녘 소소한 기록
- 영화기록
- Flutter Toy Project
- 키노
- 영화리뷰
- 자바공부
- sopt 35기
- SOPT
- 백준
- Today
- Total
새벽의 기록
[Git] Git "error: The branch 'x' is not fully merged" 본문
깃허브에서 삭제한 브랜치들이 vscode 에서는 계속해서 보이는 경우가 있었다.
원인을 알지도 못하고 그냥 직접 삭제해도 별 문제 없어서 무시했었는데 이번에 원인을 알게 되어서 기록한다.
구글링을 통해 여러 사람들의 사례를 찾아봐도 나와 같은 사례는 찾지 못해 stackoverflow에서 해결했다.
깃허브에서 보이는 브랜치 목록 |
vs code 에서 보이는 브랜치 목록 |
error: The branch 'feature/7.6' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature/7.6'.
브랜치를 삭제하려고 시도했더니 나온 에러문이다.
위의 문구에서는 error라고 표시되지만 실제로는 error보다는 warning에 가깝다고 한다.
이 error는 삭제하려는 브랜치에 해당 업스트림 브랜치 또는
HEAD 중 어느 것에서도 도달할 수 없는 커밋이 포함되어 있어서 발생한다.
즉 이대로 브랜치를 삭제할 경우 해당 브랜치에 있는 커밋을 잃을 수 있는 경우이다.
근데 의아한 점은 나는 분명 커밋과 푸시를 모두 끝내고 Pull Request를 통해 merge까지 했는데 이 에러가 발생했다.
깃허브의 main 브랜치에서도 지우고자 하는 로컬 브랜치에서의 커밋 로그가 제대로 관측되고 있어서 이유를 알 수 없었다.
그래서 끙끙거리던 와중에 혹시? 싶어서 아래 명령어를 입력해봤다.
git branch -vv
이 명령어는 현재 브랜치들과 그 브랜치들의 커밋 현황을 함께 보여준다.
그랬더니 놀랍게도 아래와 같은 결과를 확인할 수 있었다.
깃허브에서 Pull Request 하는 과정에서 PR 변호까지 함께 Commit 되어 Commit 메세지가 달랐던 것이다.
vs code에서는 이 둘이 서로 다른 커밋으로 인식해서
이대로 브랜치를 삭제하면 커밋을 잃을 수도 있다고 판단한 것으로 보인다.
결론은 그냥 깃허브에서 PR 후 브랜치 삭제까지 해주면 로컬에서와의 커밋 메세지가 달라서 경고를 띄워준다는 것이다.
그래서 그냥 일일이 삭제해 주는 수밖에 없다.
그냥 -d 로는 계속 경고를 띄우니 -D로 삭제해야 한다.
git branch -D 브랜치명
참조
https://stackoverflow.com/questions/7548926/git-error-the-branch-x-is-not-fully-merged
'[Git]' 카테고리의 다른 글
.gitignore 파일 추가했지만 안될 때 (0) | 2024.07.06 |
---|---|
[Git] 방금 한 commit 취소하고 github에 push한 commit 삭제하는 법 (0) | 2024.07.05 |
[Git] 깃 명령어 정리 (0) | 2024.03.27 |