gpt4 book ai didi

git - 如何推送所有带注释的标签?

转载 作者:太空狗 更新时间:2023-10-29 13:54:46 24 4
gpt4 key购买 nike

如何在不推送轻量级标签的情况下将所有带注释的标签从我的本地存储库推送到远程?

我在本地使用不想推送的轻量级标签,所以 git push --tags 不是解决方案。

我知道 git push --follow-tags 但它只会推送与当前推送的提交关联的标签。

我需要这个选项,因为我的正常工作流程不时涉及推送,但只在完成发布时添加标签,而且我有时会忘记推送标签。这个问题通常会在很长一段时间内未被发现,并且会导致其他开发人员产生一些混淆,因为我们与我们的标签不同步。

由于列出哪些annotated标签存在于本地而不是远程很复杂,我想通过推送所有本地带注释的标签来解决这个问题,这将确保所有开发人员的本地和远程 repo 具有相同的注释标签。

最佳答案

这并不难。首先找到所有 annotated 标签(通过拒绝直接指向提交而不是带注释的标签对象的标签)。这有点长,所以您可能希望将它写成一个 shell 函数:

list_annotated_tags() {
git for-each-ref --format '%(objecttype) %(refname)' refs/tags |
while read reftype refname; do
case $reftype in tag) echo $refname;; esac
done
}

读取上面的输出并将它们用作 git push 命令的 refspec 参数:

git push origin $(list_annotated_tags)

并且您的脚本已完成。

关于git - 如何推送所有带注释的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43970545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com