【问题标题】:Git push origin <tagname> doesn't reflect the latest pushGit push origin <tagname> 不反映最新推送
【发布时间】:2020-11-11 17:20:00
【问题描述】:

我知道有很多可用的内容,但没有一个能提供我最想要的。

我想将我的最新提交推送到我的Git Repo 上的新创建的标签。我提到了这个:

现在,读完之后,我知道,我需要的是git push origin &lt;tagname&gt;。在此之前,我做过

$ git <tagname>
$ git show <tagname>

他们都向我展示了正确的结果,这给了我一个绿色信号,让我去执行最终的命令。

$ git add .
$ git commit -am "My message"
$ git push origin <tagname> 

现在,当我做git push origin &lt;tagname&gt; 时,我得到了这个Everything up-to-date。我看到了我的GIT Repo,并没有推送任何内容。在看了一些答案之后,我终于找到了部分对我有用的东西,那就是

$ git push origin : <tagname>

这确实将我的数据推送到了 repo,但是当我检查我的 Tag 时,它并没有反映在其中,它只显示了我的最后一次提交,而不是我刚刚推送的当前提交。我该如何做到这一点,以便我可以成功地将我的数据推送到特定的标签?

【问题讨论】:

  • 你的意思是tag,而不是branch,对吧?
  • 另外:我假设git &lt;tagname&gt; 实际上是git tag &lt;tagname&gt;
  • 是的,tag 它是@LeGEC。当我点击 Git Repo 中的标签时,它并没有反映我当前的推送。

标签: git gitlab repository git-push git-tag


【解决方案1】:

tag 不会通过 git commit 等操作进行更新。

从您的问题中提取步骤并编号:

1. git tag <tagname>
2. git show <tagname>
3. git add .
4. git commit -am "My message"
5. git push origin <tagname>

在步骤4. 的提交已经移动了你的活动分支,它没有更新在步骤1. 创建的标签

如果您再次输入git show &lt;tagname&gt;,标签仍将位于其起始位置。


如果你想在本地更新标签,你必须运行:

git tag --force <tagname>

如果你想另外将该标签推送到原点:

git push origin --force <tagname>

【讨论】:

    【解决方案2】:

    似乎您标记的不是要标记的提交,而是前一个 - 首先您创建了一个标记,然后提交了新的更改。 git show &lt;tagname&gt; 是否显示正确的提交?

    【讨论】:

    • 不,当我执行 git show &lt;tagname&gt; 时,它显示了上一次提交
    • 尝试删除您创建的标签 (git tag -d &lt;tagname&gt;),然后再次添加标签(“您是否尝试将其关闭再打开?”)。这次标签将指向您想要的 HEAD。如果将标签推送到原点时出现错误,可以先将其从原点移除 (git push --delete origin &lt;tagname&gt;)
    猜你喜欢
    • 1970-01-01
    • 2014-04-30
    • 2015-02-04
    • 2020-03-17
    • 2013-08-15
    • 2019-11-28
    • 2021-07-14
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多