간단히 말해서
- 병합 된 원격 원격 여러 대를 삭제하려면 어떻게해야합니까?
더 많은 배경;
마스터에 병합 된 수십 개의 리모컨이있는 git repo가 있습니다. 다음을 사용하여 이러한 리모컨을 한 번에 하나씩 삭제할 수 있습니다.
git push --delete origin myBranch-1234
그러나 이것은 모든 리모컨에 대해 느리고 지루한 프로세스입니다. 그래서이 명령을 시도하고 있습니다.
git branch -r --merged | grep origin | grep -v master | xargs git push origin --delete
git branch -r --merged
병합 된 모든 리모컨을 나열합니다.
grep origin
원점을 포함하도록 명령에 지시합니다.
grep -v master
마스터를 제외하도록 명령을 지시합니다.
xargs git push origin --delete
원격 목록을 삭제하도록 명령에 지시합니다.
모두 합쳐서 병합 된 모든 리모컨을 수집하고 삭제할 것으로 예상합니다.
위의 명령을 실행하면 병합 된 모든 리모컨에 대해 다음을 수신합니다.
error: unable to delete 'origin/myBranch-1234': remote ref does not exist
error: unable to delete 'origin/myBranch-1235': remote ref does not exist
error: unable to delete 'origin/myBranch-1236': remote ref does not exist
error: unable to delete 'origin/myBranch-1237': remote ref does not exist
... etc
그러나 이러한 리모컨은 존재하며 각각을 확인할 수 있습니다. 많은 사이트와 사람들은 git fetch --prune
누락 된 참조를 정리하기 위해 실행 하도록 권장합니다 . 이 리모컨이 모두 존재하기 때문에 아무 작업도 수행하지 않습니다.
그래서 저는 여러분에게 부탁합니다, 친애하는 스택 교환;
- 리모컨은 하나만 삭제할 수 있지만 여러 개는 삭제할 수없는 이유는 무엇입니까?
- 내 명령이 맞습니까?
작은 것이 빠진 것 같아요. 이것을 조사 할 때마다 올바르게 수행하는 것처럼 보이지만 위의 오류가 발생합니다.
--prune
않습니까? 꽤 오해의 소지가있어 제 생각에는