IT story

Git 저장소에서 모든 태그 삭제

hot-time 2020. 5. 12. 08:05
반응형

Git 저장소에서 모든 태그 삭제


Git 저장소에서 모든 태그를 삭제하고 싶습니다. 어떻게해야합니까?

로컬로 git tag -d tagname태그 삭제하고 git 제공자에서 태그를 업데이트합니다.tagnamegit push --tags

나는 시도했다 :

git tag -d *

그러나 나는 그것이 *현재 디렉토리의 파일 의미 한다는 것을 알았습니다 .

$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...

태그가 많고 모두 삭제하고 싶다고 생각하십시오.


git tag | xargs git tag -d

모든 것을 파이프하는 Linux 철학을 사용하십시오. Windows에서는 동일한 명령으로 git bash를 사용하십시오.


로컬 태그를 삭제하기 전에 원격 태그를 삭제하려면 다음을 수행하십시오.

git tag -l | xargs -n 1 git push --delete origin

로컬 사본을 삭제하십시오.

git tag | xargs git tag -d

하나의 명령으로 모든 태그를 강제로 삭제하는 것이 더 효율적일 수 있습니다. 특히 수백이 있다면.

적합한 비 Windows 쉘에서 모든 원격 태그를 삭제하십시오.

git tag | xargs -L 1 | xargs git push origin --delete

그런 다음 모든 로컬 태그를 삭제하십시오.

git tag | xargs -L 1 | xargs git tag --delete

'태그 이름 이없는 한 괜찮습니다 . 이를 위해 다음 명령이 정상이어야합니다.

git tag | xargs -I{} echo '"{}"' | tr \\n \\0 | xargs --null git push origin --delete
git tag | xargs -I{} echo '"{}"' | tr \\n \\0 | xargs --null git tag --delete

행 목록을 가져와 따옴표로 묶고 한 줄로 만든 다음 해당 줄을 명령에 전달하는 다른 방법이있을 수 있습니다. 이것을 고려하면 최고의 고양이 스키닝 환경입니다.


PowerShell을 사용하는 Windows 사용자의 경우 :

git tag | foreach-object -process { git tag -d $_ }

반환 된 각 줄에 대해 git tag실행 git tag -d하여 반환 된 모든 태그를 삭제합니다 .


리모컨에서 태그를 삭제하는 방법이 누락 된 Stefan의 답변에 추가합니다. Windows powershell의 경우이를 실행하여 원격 태그를 먼저 삭제 한 다음 로컬 태그를 삭제할 수 있습니다.

git tag | foreach-object -process { git push origin --delete $_ }
git tag | foreach-object -process { git tag -d $_ }  

로컬 리포지토리에 태그가없는 경우 로컬 리포지토리로 가져갈 필요없이 원격 태그를 삭제할 수 있습니다.

git ls-remote --tags --refs origin | cut -f2 | xargs git push origin --delete

"origin"을 원격 핸들러 이름으로 바꾸는 것을 잊지 마십시오.


Windows 사용자의 경우 :

이것은 git tag를 실행하고 그리스트를 git tag -d에 공급함으로써 모든 로컬 태그를 삭제합니다 :

FOR /f "tokens=*" %a in ('git tag') DO git tag -d %a

( https://gist.github.com/RandomArray/fdaa427878952d9768b0에 있음 )


다음을 사용할 수도 있습니다.

git tag -d $(git tag)

이 모든 옵션은 Linux에서만 작동하므로 다음을 처리 해야하는 모든 사람에게 해당하는 Windows가 있습니다 FOR /F usebackq %t IN (.git tag) DO @git tag --delete %t

참고 URL : https://stackoverflow.com/questions/19542301/delete-all-tags-from-a-git-repository

반응형