私信  •  关注

ollowain

ollowain 最近回复了
4 年前
回复了 ollowain 创建的主题 » 如何存档旧的git标记并将更改推送到源位置?

最后我使用了下面的脚本。它会存档所有未命名为“test”的标记。然后,目录“refs/archive/tags”中的所有标记都将直接删除到原点上。推送存档目录,删除所有本地标记并从原始位置获取标记。也许有更简单的解决方案,但这一个对我来说就是这样。

mkdir refs/archive/tags
shopt -s extglob
mv refs/tags/!(test) refs/archive/tags/
ls refs/archive/tags/ | xargs -n 1 -I% git push origin :refs/tags/%
git push origin refs/archive/tags/*:refs/archive/tags/*
git tag -l | xargs git tag -d
git fetch origin +refs/tags/*:refs/tags/*

我的同事必须使用以下脚本:

git tag -l | xargs git tag -d
git fetch origin +refs/archive/*:refs/archive/* +refs/tags/*:refs/tags/*

必要时还原所有标记:

mv refs/archive/tags/* refs/tags/
git push origin --tags