2016-12-12 2 views
0

내 Git 저장소에 여러 개의 태그가 있습니다. 어떻게 든 모든 단일 태그를 삭제하지 않고 일반적인 패턴으로 시작하는 모든 태그를 삭제할 수 있습니까?두 개 이상의 태그를 삭제하는 방법은 무엇입니까?

v1.xxx으로 시작하는 모든 태그를 삭제하고 싶지만 v2.xxx으로 시작하는 태그는 삭제하고 싶지 않습니다.

git tag --delete v1.* 
git push --delete origin v1.* 

어떤 제안 :

git tag -l | xargs git tag -d 

차라리 뭔가를하고 싶은 것 :는 모든 태그를 삭제하지

내가 할 ?

업데이트 - 리모컨에서 두 개 이상의 태그를 어떻게 푸시 할 수 있습니까? ,

git tag -d `git tag | grep -E '.'` 

그리고 당신을 : 당신은 모든 로컬 저장소에 태그를 삭제할 수 있습니다

git tag | xargs git tag -d 

또는 (|)

+1

셸 supp 완성 기능을 사용할 수 있습니다 :'git tag --delete v1.'를 입력 한 다음 모든 완료를 확장하십시오 (배쉬에서는 기본적으로'Alt' +'*'IIRC로 끝납니다). – Biffen

답변

2

통해 리눅스는 파이프로 구분하여 여러 GIT 태그를 삭제할 수 있습니다 명령 _test로 끝나는 모든 태그를 삭제할 수 있습니다.

git tag -d `git tag | grep -E '^*\._test$'` 
+0

그래서 마지막 명령을 다시 썼습니다 : $ git tag -d'git tag | grep -E 'v1.^*' '그리고 이것은 v1로 시작하는 모든 태그를 삭제합니다. 원격으로 어떻게 푸시 할 수 있습니까? – Jules

+0

@Jules : git add -A git commit -m "commit-message" git push 이 변경 사항을 원격으로 푸시하려면이 작업을 수행해야합니다. –

+0

일반 git 푸시로 삭제 된 태그를 푸시 할 수 없습니다. 자식 밀어 원산지 : : 심판/태그/12345 또는 이 자식 밀어 --delete 원점 태그 이름 또는 자식 태그는 태그 이름 -d하지만 내 이해 이것은 단지 하나의 태그 이름과 협력이 같은 뭔가를해야 – Jules

관련 문제