用叉子回购Git意外标签推送

时间:2017-01-17 14:16:51

标签: git github version-control

我有一个带有同步分叉的存储库 让我们称之为Software-A,它与Software-B的repo同步。

软件B?

git remote add upstream https://github.com/Software-B/SoftWare-B.git
git fetch upstream

我想为Software-A

创建一个新版本
git tag -s mysoftware-0.4
git push --tags

但突然间我看到了来自Software-B的几百个标签。

如何撤消此操作?

2 个答案:

答案 0 :(得分:1)

您应该手动从SoftwareB中删除标签,以下任何命令都可以起作用:

git push origin --delete tag tagname
git push origin :refs/tags/tagname

答案 1 :(得分:0)

为我写了一个脚本,因为我不打算手动删除每个标签/版本。 0.10.x上留下的所有内容都是我删除的个人版本。

脚本:

for t in `git tag`
do
    version="v0.10.*"
    if [[ $t =~ $version || $t = "origin" ]]; then
        echo $t "is safe and won't be deleted";
else
        echo "deleted: " $t
        git tag -d $t
        git push origin :refs/tags/$t
fi
done
echo "done"