Git 저장소에서 모든 태그 삭제
Git 저장소에서 모든 태그를 삭제하고 싶습니다.내가 어떻게 그럴 수 있을까?
용사를 합니다.git tag -d tagname를 합니다.tagname 그리고 및용사로git push --tags나는 git 공급자의 태그를 업데이트합니다.
노력했습니다.
git tag -d *
하지만 나는 그것을 봅니다.*현재 디렉터리의 파일을 의미합니다.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
태그가 많다고 생각하고 모두 삭제하고 싶습니다.
git tag | xargs git tag -d
모든 것을 파이프로 연결하는 유닉스 철학을 따르기만 하면 됩니다.
윈도우즈에서는 gitbash를 동일한 명령과 함께 사용합니다.
원격 태그를 삭제하려면(로컬 태그를 삭제하기 전에) 다음을 수행합니다.
git tag -l | xargs -n 1 git push --delete origin
로컬 복사본을 삭제합니다.
git tag | xargs git tag -d
하나의 명령에서 모든 태그를 강제로 삭제하는 것이 더 효율적일 수 있습니다.특히 수백 개를 가지고 있다면 더욱 그렇습니다.
윈도우즈가 아닌 적절한 셸에서 모든 원격 태그를 삭제합니다.
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반환되는 각 행에 대해
로컬 저장소에 태그가 없는 경우 로컬 저장소로 가져가지 않고도 원격 태그를 삭제할 수 있습니다.
git ls-remote --tags --refs origin | cut -f2 | xargs git push origin --delete
오리진을 원격 처리기 이름으로 바꾸는 것을 잊지 마십시오.
원격에서 태그를 삭제하는 방법이 누락된 Stefan의 답변에 추가.윈도우즈 powershell의 경우 이를 실행하여 원격 태그와 로컬 태그를 먼저 삭제할 수 있습니다.
git tag | foreach-object -process { git push origin --delete $_ }
git tag | foreach-object -process { git tag -d $_ }
Windows 사용자의 경우:
git 태그를 실행하고 git 태그 -d에 해당 목록을 공급하여 모든 로컬 태그를 삭제합니다.
FOR /f "tokens=*" %a in ('git tag') DO git tag -d %a
(https://gist.github.com/RandomArray/fdaa427878952d9768b0) 에서 찾을 수 있습니다.
다음을 사용할 수도 있습니다.
git tag -d $(git tag)
모든 로컬 태그를 삭제하려면 다음 명령을 실행합니다.
git tag | xargs git tag -d
위 명령을 실행하여 로컬 태그를 삭제한 후 원격 태그를 삭제하려면 아래 명령을 실행합니다.
git ls-remote --tags --refs origin | cut -f2 | xargs git push origin --delete
참고: 오리진을 원격 처리기로 바꿉니다.
접두사가 있는 태그를 삭제해야 합니다.
예를 들어 v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5 태그를 삭제해야 합니다.
git tag -d $(git tag -l "v0.0.*")
위의 문장을 분해하고 설명합니다.
접두사가 있는 모든 태그를 나열하는 방법
git tag -l "v0.0.*"
태그를 삭제하려면
git tag -d $tag_names
그게 그 진술이 작동하는 방식입니다.
이 모든 옵션은 Linux에서만 작동하므로 다음과 같은 Windows를 사용해야 합니다.
FOR /F usebackq %t IN (`git tag`) DO @git tag --delete %t
Powershell v7은 삭제해야 하는 업스트림(오리진) 태그가 많은 경우 각 태그에 대해 병렬을 지원합니다.
git tag | foreach-object -Parallel {
git push origin --delete $_
git tag -d $_
}
최근 버전이 병렬화 및 필터링됨
git tag -l "v1.0.*" | xargs -L 1 | xargs git push origin --delete
git fetch origin --prune --prune-tags
첫 번째 줄, 원격에서 일치하는 모든 태그를 병렬로 제거합니다.
두 번째 줄에서는 git 버전 v2.26.2에서 삭제된 모든 태그를 제거하여 현재 보고서를 업데이트합니다.
추가할 수 있는 첫 번째 줄을 테스트하는 방법--dry-run또한 tag list 명령어를 살펴보시기 바랍니다. 멋진 와일드카드와 제외/포함 기능이 있습니다.
"v"가 포함된 모든 태그 표시
git tag -l | grep v | xargs -n 1 sh -c 'echo "Processing tag $0\n" && git show -s $0'
와일드카드 패턴이 있는 로컬 태그와 원격 태그를 모두 삭제하는 하나의 라이너입니다.
TAGPATTERN="0.1.*" ; git push origin --delete $(git tag -l $TAGPATTERN) ; git tag -d $(git tag -l $TAGPATTERN)
원격 태그는 목록이 로컬에서 생성될 때 먼저 삭제됩니다.
필요 없는 솔루션을 찾을 수 없었습니다.git push태그당 호출을 수행하기 위해 이 변형을 고안했습니다. 이 변형은 - 제 경우 - 런타임을 몇 시간에서 몇 초로 단축했습니다.
git push --delete origin $( git ls-remote --tags origin | awk '{print $2}' | grep -Ev "\^" | tr '\n' ' ')
설명.
git push --delete origin $(...)오리진 시 태그(또는 여러 개)를 삭제합니다.$( git ls-remote --tags origin | awk '{print $2}' | grep -Ev "\^" | tr '\n' ' ')모든 태그의 공백으로 구분된 문자열을 만듭니다.git ls-remote --tags origin원격 오리진의 모든 태그를 인쇄합니다.... | awk '{print $2}' | ...이전 명령 출력의 두 번째 열만 인쇄합니다.... | grep -Ev "\^" | ...원하지 않는 항목 필터링refs/tags/mytag^{}변형(어디서 왔는지 확실하지 않음)... | tr '\n' ' '목록을 공백으로 구분된 문자열로 변환합니다.
공백으로 구분된 문자열에 여러 개의 태그 이름을 제공할 수 있다는 점을 활용하여 다음 항목만 호출합니다.git delete한번만.
Windows의 경우 원격 태그 제거를 위해 다음 작업을 수행합니다.
git fetch --tags
git push origin --delete $(git tag -l)
로컬에서 Git 태그는 디스크에 저장된 파일일 뿐입니다..git/refs/tags하위 폴더.
그냥.cd .git/refs/tags저장된 모든 파일을 제거하고 파일을 삭제하는 방법을 사용합니다.rm *파일에서 삭제 탐색기 UI 등)
언급URL : https://stackoverflow.com/questions/19542301/delete-all-tags-from-a-git-repository
'IT' 카테고리의 다른 글
| gitrebase: "error: cannot stat 'file': 권한이 거부되었습니다." (0) | 2023.05.23 |
|---|---|
| PowerShell을 사용하여 관리자로 명령을 실행하시겠습니까? (0) | 2023.05.23 |
| Excel 시트를 통해 Python 루프, 한 쪽에 배치 (0) | 2023.05.23 |
| Postgres: "오류: 캐시된 계획은 결과 유형을 변경할 수 없습니다." (0) | 2023.05.18 |
| 마이크로소프트의 목적은 무엇입니까?넷 컴파일러? (0) | 2023.05.18 |