我知道这git push --tags是一个单独的操作原因git push.推动标签应该是一个有意识的选择,因为你不想意外推动标签.没关系.但有没有办法将两者结合在一起?(除了git push && git push --tags.)
Von*_*onC 497
从git 2.4.1开始,你可以做到
git config --global push.followTags true
Run Code Online (Sandbox Code Playgroud)
如果设置为true,则默认启用--follow-tags选项.您可以通过指定--no-follow-tags在推送时覆盖此配置.
从git 1.8.3(2013年4月22日)开始,您不再需要执行2个命令来推送分支,然后推送标签:
新的"
--follow-tags"选项告诉"git push" 在推出分支时推送相关的带注释的标签.
您现在可以在推送新提交时尝试:
git push --follow-tags
Run Code Online (Sandbox Code Playgroud)
这不会推送所有本地标签,只有提交引用的标签git push.
Git 2.4.1 +(2015年第二季度)将介绍该选项push.followTags:请参阅" 如何制作" git push"在分支中包含标签? ".
核选择将是git push --mirror,将推动所有裁判refs/.
您还可以使用当前分支提交仅推送一个标记:
git push origin : v1.0.0
Run Code Online (Sandbox Code Playgroud)
您可以将该--tags选项与refspec 结合使用,例如:
git push origin --tags :
Run Code Online (Sandbox Code Playgroud)
(因为--tags意味着:除了在命令行中明确列出的refspec之外,所有引用refs/tags都被推送)
您还有此条目" 使用单个"推送分支和标签"git push"调用 "
一个方便的提示刚刚被ZoltánFüzesi 发布到Git邮件列表中:
我
.git/config用来解决这个问题:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Run Code Online (Sandbox Code Playgroud)
添加这些
git push origin行将上传所有分支和标记.如果您只想上传其中一些,可以枚举它们.还没有尝试过,但看起来它可能会有用,直到同时推送分支和标签的其他方式添加到git push.
另一方面,我不介意打字:
$ git push && git push --tags
Run Code Online (Sandbox Code Playgroud)
push = +refs/heads/*将强行推动你所有的分支.
刚才这就是我,所以我是.
该
--follow-tags参数具有误导性,因为只.git/refs/tags考虑了标签.
如果git gc运行,标签将从中移动.git/refs/tags到.git/packed-refs.之后git push --follow-tags ...不再按预期工作了.
@从 Git 2.4 开始
git push --atomic origin <branch name> <tag>
假设您在 github 上创建了一个新的存储库。所以第一步是克隆 repo:git clone {Your Repo URL}
您完成您的工作,添加一些文件、代码等,然后使用以下命令推送您的更改:
git add .
git commit -m "first commit"
git push
Run Code Online (Sandbox Code Playgroud)
现在我们的更改在主分支中。让我们创建一个标签:
git tag v1.0.0 # creates tag locally
git push origin v1.0.0 # pushes tag to remote
Run Code Online (Sandbox Code Playgroud)
如果要删除标签:
git tag --delete v1.0.0 # deletes tag locally
git push --delete origin v1.0.0 # deletes remote tag
Run Code Online (Sandbox Code Playgroud)
刚刚在 git 2.31.0 上测试:git push <refspec> --tags。这样做的优点是它推送所有标签,而不仅仅是带注释的标签,例如--follow-tags.
为了避免在 Gitlab 上针对同一提交触发两个 CI 构建:
git push -o ci.skip && git push --tags
Run Code Online (Sandbox Code Playgroud)
正如@user1160006 此处建议的那样。
| 归档时间: |
|
| 查看次数: |
98189 次 |
| 最近记录: |