programing

더 이상 존재하지 않는 원격 분기를 표시하는 'git branch -av'

testmans 2023. 6. 29. 19:53
반응형

더 이상 존재하지 않는 원격 분기를 표시하는 'git branch -av'

이것은 아마도 어리석은 질문일 것입니다. 하지만 저는 처음이고 더 이상 존재하지 않는 원격 지점을 보고 있습니다.

$ git branch -a
* master
  remotes/origin/master
  remotes/origin/production

저는 생산 지점이 원격으로 존재한다고 생각하지 않고 왜 아직도 로컬로 표시되는지 알 수 없습니다.이 분기를 삭제/제거하려면 어떻게 해야 합니까?제거 시도는 다음과 같습니다.

$ git push origin :production

error: unable to push to unqualified destination: production
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@IP:puppet.git'

원격 프로덕션 지점을 확인할 수 있지만 다음과 같은 정보를 얻을 수 있습니다.

$ git checkout origin/production
Note: checking out 'origin/production'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at c323996... added powerdns module, no really

도대체 내가 뭘 하고 있는지 전혀 모르겠어요.어떤 도움이라도 주시면 감사하겠습니다.

다음 작업을 수행해야 합니다.

git remote prune origin

그래서 두 가지 문제가 있습니다.두 경우 모두 Git가 분포되어 있다는 것을 기억하십시오.

첫 번째. 이런 거 할 때.

git branch -a

작업은 원격 컴퓨터가 아닌 로컬 보고서에서 수행됩니다.즉, 로컬 보고서는 에 대해 알고 있는 모든 분기를 보고합니다.로컬 분기(예: '마스터') 또는 원격에서 가져온 원격 분기일 수 있습니다.마지막으로 가져온 이후로 원격 repo의 'production' 분기가 변경되었지만 로컬 repo는 이를 알지 못합니다.manojlds의 답은 맞습니다.달려.

git 원격 가지치기 기원

오래된 가지를 제거합니다.

git push origin:production' 명령은 원격 컴퓨터의 git repo에서 분기를 삭제하는 데 사용됩니다.당신의 지역 담당자가 아닙니다.이 경우 다른 사용자가 원격 시스템의 Git repo에 있는 분기를 이미 삭제했으므로 이 오류 메시지가 표시됩니다.

다음은 이러한 명령을 요약한 링크입니다.

두 번째 문제는 체크아웃에 관한 것입니다.

분기를 체크아웃할 때 원격 분기가 아닌 로컬 분기에서 체크아웃하려고 합니다.그래서 분리된 HEAD에 대한 오류가 발생하는 것입니다.git-notes repo에는 문제에 대한 자세한 설명이 나와 있습니다.기본적으로 핵심 문구는 다음과 같습니다.

그러나 올바른 로컬 지점 이름이 아닌 항목을 체크아웃하면 HEAD는 더 이상 어떤 항목에 대한 상징적인 참조가 아닙니다.대신 전환하려는 커밋의 SHA-1 해시(커밋 ID)가 실제로 포함됩니다.

이제, 원격 지점과 동일한 로컬 지점을 확인하는 방법은 무엇입니까?

쉽게, 원격 지점을 체크아웃할 때 로컬 지점을 만듭니다.

git checkout - bmy_local_building origin/production

git remote prune origin

맞습니다. 사용할 수 있는 항목을 추가하는 것입니다.--dry-run로컬 repo에서 제거할 분기를 보고하지만 실제로 제거하지는 않는 옵션

git remote prune origin --dry-run

언급URL : https://stackoverflow.com/questions/8766525/git-branch-av-showing-remote-branch-that-no-longer-exists

반응형