programing

git branch -d는 경고를 줍니다.

batch 2023. 8. 19. 09:59
반응형

git branch -d는 경고를 줍니다.

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

경고: 분기 삭제'old_branch'에 병합된'refs/remotes/origin/old_branch'그러나 아직 에 합병되지 않은HEAD.

이는 변경사항이 지점에 푸시되었음을 경고하는 것입니다.origin그러나 현재 체크아웃된 분기에 병합되지 않으므로 로컬에서만 삭제합니다.

해당 분기의 로컬 복사본이 더 이상 없지만 다음에 있음을 경고하는 메시지가 표시됩니다.origin

원격 분기도 삭제하려면 다음을 사용합니다.git push --delete origin old_branch

당신이 현재 가지고 있다고 가정할 때master체크아웃되었습니다. 변경 사항을 의미합니다.old_branch에 없는master그러나, 그들은 존재합니다.old_branchorigin.

이것은 당신의 지역 지점을 의미합니다.old_branch원격 지점에서 최신 상태임old_branch원격으로origin그러나 분기에 병합되지 않습니다.master레포의 주요 지점으로 간주되는.

그것은 단지 기트로부터의 예방책일 뿐입니다.이것은 힌트를 줍니다: 아마도 당신은 주제 분기에서 당신의 일을 했고 그것을 주요 분기로 병합하는 것을 잊었나요?


갱신하다

Git는 변경사항이 손실되지 않도록 경고합니다.예를 들어 당신이 당신의 것을 가지고 있지 않은 경우.old_branch마스터 깃에서 마스터에 병합되지 않은 분기를 삭제하는 것조차 허용하지 않습니다(글쎄요, 허용하지만 키를 사용합니다).-D어느 것이force-delete옵션)을 선택합니다.

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

여기에 있는 몇 가지 답은 완전히 맞았지만, 질문을 완전히 해결하지는 못한 것 같습니다.그래서 다른 시도를 해보겠습니다.

OP 질문 바꿔치기

Pull Request를 수행하고 PR을 완료하여 GitHub/Bitbucket 등에서 분기를 자동으로 제거한 후, 분기를 로컬로 삭제할 때 다음 오류가 표시됩니다.warning: deleting branch 'old_branch' that has been merged to 'refs/remotes/origin/old_branch', but not yet merged to HEAD.

타임라인 이해

GitHub 또는 원격 저장소는 컴퓨터의 로컬 상태를 전혀 알지 못합니다.

꺼내기 요청이 완료되고 원래 PR 분기를 제거하도록 요청하면 로컬 분기를 알 수 없습니다.

이 때 로컬 분기를 삭제합니다.해당 지역의 담당자/컴퓨터는 다음 일정을 알고 있습니다.

  1. myfeature==>origin/myfeature(myfeature).
  2. 그리고나서myfeature되었습니다.
  3. 그렇게origin/myfeature 존재합니다.

, 물론사아이닙다니면실하, 냐왜은것이▁the면▁of,하왜▁because냐,다.origin/myfeaturePR이 완료되었을 때 브랜치가 파괴되었지만 로컬 컴퓨터는 이를 알지 못합니다.그래서 Git는 경고를 합니다.

GitHub/BitBucket 등이 필요하지 않습니다.쉽게 만들 수 있을까요?

왜냐하면.

PR 완료 ==> 원격 분기 제거

패러다임이 너무 흔하기 때문에 원격 지사가 어떻게든 로컬 지사에 이 현상을 알려주면 좋을 것 같습니다.그러나 Git는 정보를 요청할 요청하지 않은 정보는 절대 보내지 않는 "일방향 커뮤니케이션"으로 매우 잘 수행했습니다.한 영역에서의 "양방향" 커뮤니케이션은 다른 영역에서도 사람들이 원할 수 있습니다. 곧 우리는 성공하기에는 너무 취약했던 SVN 또는 다른 "중앙 저장소" 패러다임과 같은 모습으로 Git로 돌아갑니다.나보다 더 많이 아는 사람은 아마도 이 "양방향 소통"이 야기할 모든 문제를 더 자세히 설명할 수 있을 것입니다.

즉, 이 분기에 대한 변경 내용이 원격(주/마스터)에서는 병합되지만 로컬(주/마스터)에서는 병합되지 않습니다.

이러한 경고를 방지하려면 주/마스터 체크아웃 후 당김을 수행해야 합니다.

언급URL : https://stackoverflow.com/questions/12147360/git-branch-d-gives-warning

반응형