我已经将一个远程Git存储库克隆到了我的笔记本电脑,然后我想添加一个标签,所以我跑了
git tag mytag master
Run Code Online (Sandbox Code Playgroud)
当我git tag在笔记本电脑上运行时,mytag会显示标签.然后我想将它推送到远程存储库,所以我在所有客户端都有这个标签,所以我运行git push但是我收到了消息:
一切都是最新的
如果我去我的桌面并运行git pull然后git tag没有显示标签.
我还尝试对项目中的文件进行微小更改,然后将其推送到服务器.之后,我可以将更改从服务器拉到我的台式计算机,但git tag在台式计算机上运行时仍然没有标记.
如何将我的标签推送到远程存储库,以便所有客户端计算机都可以看到它?
如果我想标记当前提交.我知道以下两个命令行都有效:
git tag <tagname>
Run Code Online (Sandbox Code Playgroud)
和
git tag -a <tagname> -m '<message>'
Run Code Online (Sandbox Code Playgroud)
这些命令有什么区别?
我想强制推送,例如,我的标签1.0.0到我的远程master分支.
我现在正在做以下事情:
git push production +1.0.0:master
Run Code Online (Sandbox Code Playgroud)
我想强制推送,因为我关心的是1.0.0标签内的代码被推送到master远程存储库的分支.
我究竟做错了什么?
当我通过SSH连接到我的Git存储库并执行的服务器时git branch -l,我也看不到master列出的分支.
git tag -l从远程Git存储库内部运行后,我看到它master已列出,这意味着当我运行以下代码时:
git push production 1.0.0:master
Run Code Online (Sandbox Code Playgroud)
它实际上推送了标签并创建了一个名为 master而不是新分支的标签.
我想基本上将标签的内容推1.0.0送到master远程Git存储库的分支.
我即将对我的项目进行重大技术更改,从 ANT 迁移到 Gradle。该项目从未发布过——它仍在开发中。我想标记最后一个旧技术版本,以便可以找到它以供参考或恢复。但我不想暗示有任何形式的释放。
\n[补充一点:我希望一些感兴趣的人看到一个版本并认为它可能是一个可用的“版本”。也就是说,我认为版本是针对用户的,标签是针对开发人员的。]
\n我更喜欢一个不需要我进入 Git 命令行的答案,但如果有必要,请假设我已经忘记了我曾经尝试学习的东西。
\n在对问题create-a-tag-in-a-github-repository 的回答的评论中,@RandomDSdevel 说:
\n\n\n[S]难道您不能创建不会自动被 GitHub 作为releases\xe2\x80\xa6 拾取的标签吗?
\n
然后
\n\n\n我不久前向 GitHub 提交了有关此问题的支持请求,但当时他们有一些支持积压,所以我的请求被关闭了。
\n
我有一个由另一个人生成的孤立提交,我在 GitHub GUI 中看到了它。由于路径上没有包含此提交的分支/标签,因此无法通过克隆存储库来访问此提交。假设提交的作者已经删除了他的本地存储库,我希望直接在 GitHub 中为这个提交分配一个分支/标签。
只需使用我可以使用的直接链接即可看到此提交,因为它的 git hash 是已知的。但是,在Insights>Network中看不到提交。
如何从 GitHub 中的此提交页面为提交分配标签?是否可以直接从此页面创建新分支?有什么其他方法可以将此提交返回到服务中?