问题标签 [git-tag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 为什么我应该关心轻量级标签和带注释的标签?
去年,我从 Subversion 切换到 Git 作为我的日常 VCS,并且仍在努力掌握“Git-think”的细节。
最近困扰我的一个是“轻量级”与注释与签名标签。对于所有实际用途,带注释的标签优于轻量级标签似乎已被普遍接受,但我发现为什么会出现这种情况的解释似乎总是归结为“因为最佳实践”或“因为它们不同” . 不幸的是,这些都是非常不令人满意的论点,不知道为什么它是最佳实践,也不知道这些差异与我的 Git 使用有何关系。
当我第一次切换到 Git 时,轻量级标签似乎是自切片面包以来最好的东西;我可以指向一个提交并说“那是 1.0”。我很难理解一个标签怎么可能需要更多,但我当然不能相信世界上的 Git 专家会任意喜欢带注释的标签!那么所有的喧嚣是什么?
(奖励积分:为什么我需要签署标签?)
编辑
我已经成功地确信带注释的标签是一件好事——知道谁标记了,什么时候标记很重要!作为后续,关于好的标签注释有什么建议吗?两者都git tag -am "tagging 1.0" 1.0
尝试总结提交日志,因为上一个标签感觉就像失去了策略。
git - 可以将轻量级标签转换为带注释的标签吗?
我用轻量级标签标记了提交,并将该标签推送到远程仓库,与其他开发人员共享。我现在意识到我应该对它进行注释,以便它出现在git describe
.
有没有办法在不破坏东西的情况下转换它/重新标记提交?
git - 如何使用 Git 将标签推送到远程存储库?
我已经克隆了一个远程 Git 存储库到我的笔记本电脑,然后我想添加一个标签,所以我跑了
当我git tag
在笔记本电脑上运行时,会显示标签mytag
。然后我想把它推送到远程存储库,所以我的所有客户端都有这个标签,所以我运行git push
但我收到了消息:
一切都是最新的
如果我去我的桌面运行git pull
然后git tag
没有标签显示。
我还尝试对项目中的文件进行细微更改,然后将其推送到服务器。之后我可以将更改从服务器拉到我的台式计算机,但运行时仍然没有标签git tag
在我的台式计算机上运行时仍然没有标签。
如何将我的标签推送到远程存储库,以便所有客户端计算机都可以看到它?
ruby-on-rails - 使用 capistrano 和 git 实现强大的部署策略
为允许以下场景的 RoR 应用程序设置强大的部署策略的最佳方法是什么?
- 新功能已提交
- 部署到临时环境的新功能
- 紧急功能/修复已提交
- 部署到暂存的紧急修复(不包括以前的功能)
- 紧急修复在分段测试
- 部署到生产环境的紧急修复
- 部署回登台的原始新功能
据我所知,我将需要使用 git 分支或标记或两者兼而有之。是否有任何工具可以减少或自动化维护这些分支或标签的开销?
git - 如何在 git 中列出所有标签以及完整消息?
我希望 git 列出所有标签以及完整的注释或提交消息。这样的事情很接近:
这正是我想要的,除了它只会显示标签消息的前 5 行。
我想我可以使用一个非常大的数字。我可以在这里使用的最高数字是多少?每台电脑都一样吗?
更新:我有很多时间考虑这个问题,现在我认为如果其中一些非常长,我不一定要显示每条消息的全部内容。我真的没有任何特殊的需要需要我看到大量的消息(除了我自己倾向于在我写的所有内容中冗长,包括标签消息)。我只是不喜欢它不一定会向我展示整个信息的想法,因为这让我觉得它在向我隐藏信息。但是太多的信息也可能是一件坏事。
git - 如何删除远程标签?
如何删除已经推送的 Git 标签?
git - Git:区分本地和远程标签
如果远程存储库中有标签,我通常会在拉取时自动获取它们。当我删除创建的本地标签 ( git tag -d <tag-name>
) 并拉取时,将重新创建已删除的标签。我可以删除远程分支/标签 ( git push <remote-branch/tag-name>:<branch/tag-name>
),但是如何检测本地标签是通过获取远程标签创建的?
git - 签出 Git 标签会导致“分离的 HEAD 状态”
我正在为我的 git 项目开发一个部署脚本,我刚刚开始使用标签。我添加了一个名为的新标签v2.0
:
我已经将此标签推送到远程存储库
当我尝试执行部署脚本并检查v2.0
标签时,我收到以下消息:
您处于“分离 HEAD”状态。您可以环顾四周,进行实验性更改并提交它们,并且您可以放弃在此状态下所做的任何提交,而不会通过执行另一个签出来影响任何分支。如果您想创建一个新分支来保留您创建的提交,您可以(现在或以后)再次使用 -b 和 checkout 命令来执行此操作。示例: git checkout -b new_branch_name HEAD 现在位于
这正常吗?存储库处于不确定状态,因为如果我这样做:
我得到这个输出:
抱歉,如果这很明显,但我无法弄清楚。
git - git:是否有类似每个分支的标签?
我有一些历史重写要做,我想暂时保持我原来的树完好无损。然而,重写的树也应该复制以前使用的标签。有没有比在分支名称前添加标签名称更少的手动选项?
git - 使用 git 标记子模块的旧提交
我有一个 git 项目(repo1),包括一个子模块(repo2)。我想要实现的是使用我的子模块的旧提交(如 HEAD - 3)标记我的项目。
我尝试将子模块签出到我想要的提交,但签出是错误的,因为在我的项目中提交不会跟踪正确的修订。我尝试将我的子模块重置为我想要的提交,提交项目,然后拉出子模块并提交项目,这也是错误的,因为:
什么是最好的——也是最好的——程序?
Git submodule head 'reference is not a tree' 错误给出了答案的开始,但它仍然链接 repo2 的 HEAD 而不是选择的提交......
假设现在标签已经完成,我如何告诉我的 repo1 将 repo2 设置为标签的正确状态:
根据git submodule update,一个简单的
应该足够了。它不会将我的子模块签出到指定的提交。为什么 ?那是……错误吗?