我知道为什么git push——tags是一个单独的操作,而不是普通的git push。推标签应该是一个有意识的选择,因为你不想不小心推到一个标签。这很好。但是有没有办法把两者结合起来呢?(除了git push && git push——标签。)
当前回答
Git GUI有一个PUSH按钮——原谅我的双关语,它打开的对话框有一个标签复选框。
我在没有标记的情况下从命令行推送了一个分支,然后使用上面描述的——follow-tags选项再次尝试推送该分支。该选项描述如下带注释的标记。我的标签很简单。
我修复了一些东西,在提交中标记了修复(这样同事们就可以选择修复),然后更改了软件版本号,并标记了我创建的版本(这样同事们就可以克隆那个版本)。
Git返回说一切都是最新的。它没有发送标签!也许是因为标签没有注释。也许是因为树枝上没有什么新东西。
当我用Git GUI做类似的推送时,标签被发送了。
目前,我将使用Git GUI而不是命令行和——follow-tag将更改推送到远程。
其他回答
@since Git 2.4
Git推送——原子起源<分支名称> <标签>
试着everythig。
对我来说,避免在Gitlab上为同一个提交触发两个CI构建的唯一解决方案是:
git push -o ci.skip && git push --tags
@user1160006在评论中建议。
我在这里重复一遍,作为一个适当的答案,让感兴趣的人更容易看到它。 作为对我的提醒;)
Git GUI有一个PUSH按钮——原谅我的双关语,它打开的对话框有一个标签复选框。
我在没有标记的情况下从命令行推送了一个分支,然后使用上面描述的——follow-tags选项再次尝试推送该分支。该选项描述如下带注释的标记。我的标签很简单。
我修复了一些东西,在提交中标记了修复(这样同事们就可以选择修复),然后更改了软件版本号,并标记了我创建的版本(这样同事们就可以克隆那个版本)。
Git返回说一切都是最新的。它没有发送标签!也许是因为标签没有注释。也许是因为树枝上没有什么新东西。
当我用Git GUI做类似的推送时,标签被发送了。
目前,我将使用Git GUI而不是命令行和——follow-tag将更改推送到远程。
刚刚在git 2.31.0上测试:git push <refspec>——tags。这样做的好处是它推送ALL标签,而不仅仅是——follow-tags这样的注释标签。
假设你在github上创建了一个新的repo。所以第一步是克隆repo:git克隆{你的repo URL}
你做你的工作,添加一些文件,代码等,然后推动你的变化:
git add .
git commit -m "first commit"
git push
现在我们的变更在主分支中。让我们创建一个标签:
git tag v1.0.0 # creates tag locally
git push origin v1.0.0 # pushes tag to remote
如果你想删除标签:
git tag --delete v1.0.0 # deletes tag locally
git push --delete origin v1.0.0 # deletes remote tag
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别